phpmyadmin 특정테이블 덤프 (큰용량)

phpmyadmin 특정테이블 덤프 (큰용량)

QA

phpmyadmin 특정테이블 덤프 (큰용량)

본문

특정테이블을 다른서버로 옮기는 작업을 하려고 합니다.

 

옮기려는 테이블에는 약 15,000,000건 정도의 데이터가 들어있습니다.

phpmyadmin 에서 내보내기로 진행해보니 (.sql)

 

250,000 정도의 데이터만 덤프가 되고, 나머지는 덤프가 안됩니다.

(데이터가 짤려서 저장됩니다.. 이부분 설정을 모르겠어요)

 

쉘로 접속해서 덤프를 하려해도 권한이 없는지 덤프명령어가 실행이 안됩니다 ( cafe24 호스팅 )

고객센터에 이전요청하기 애매한 부분이 있어서 직접하려고 하는데

이럴땐 어떤방법이 있을까요?   왜 phpmyadmin에서는 온전히 데이터를 못받는지도...

 

 

 

이 질문에 댓글 쓰기 :

답변 7

아래의 내용을 한번 참고를 해보시겠어요..

 

1. phpMyAdmin 설정 변경

 

phpMyAdmin의 설정 파일(config.inc.php)에서 다음과 같은 값을 조정해 보세요:

 

UploadLimit: 파일 업로드 크기 제한을 늘립니다.
MaxExecutionTime: 최대 실행 시간을 늘려줍니다.
MemoryLimit: PHP의 메모리 제한을 늘려줍니다.

 

$cfg['UploadLimit'] = '200M'; // 업로드 크기
$cfg['ExecTimeLimit'] = 300; // 최대 실행 시간 (초)
$cfg['MemoryLimit'] = '512M'; // 메모리 한도
 

 

2. 데이터베이스 덤프 스크립트 사용

phpMyAdmin을 사용하지 않고 직접 SQL 덤프를 생성할 수 있는 스크립트를 작성해 보세요. 다음은 PHP로 작성한 예시입니다.

 

<?php
$servername = "your_server";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";
$table = "your_table";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// SQL to get all data from the table
$sql = "SELECT * FROM $table";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // Open file for writing
    $file = fopen('dump.sql', 'w');

    // Loop through each row and write to file
    while($row = $result->fetch_assoc()) {
        $values = array_map(function($value) {
            return "'" . addslashes($value) . "'";
        }, $row);
        $sql_insert = "INSERT INTO $table VALUES (" . implode(",", $values) . ");\n";
        fwrite($file, $sql_insert);
    }

    fclose($file);
    echo "Dump completed.";
} else {
    echo "0 results";
}

$conn->close();
?>
 

 

3. 다른 도구 사용

 

MySQL Workbench: 대량의 데이터를 쉽게 내보내고 가져올 수 있는 GUI 도구입니다.
HeidiSQL 또는 DBeaver와 같은 다른 SQL 클라이언트도 사용할 수 있습니다.

 

4. 데이터 분할

 

데이터가 너무 크면, 특정 조건(예: ID 범위)을 설정하여 여러 번에 나누어 덤프를 시도해 볼 수 있습니다. 예를 들어, 1,000,000건씩 나누어 덤프하는 방법입니다.

 

 

phpmyadmin 로 사용해서 데이터를 업로드하는건 크지 않은 건수들만 하시는게 좋습니다. (1만건미만)

 

1만건 이상이 되는건...putty나 ssh로 접속으로 해서 터미널에서 코멘트 명령으로 처리하시는것을 추천드립니다. 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 126,760
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT