2016-07-14 23 views
1

그래서 나는 godaddy 공유 호스팅에 있습니다. 500MB의 데이터를 가진 약 20 개의 테이블의 db와 데이터를 백업해야합니다.공유 데이터베이스에 큰 데이터베이스를 백업합니다. 시도 mysqldump 및 phpmyadmin

솔루션을 시도 :

1. 솔루션 : phpMyAdmin을을

단순히 테이블을 수출하고 수출을 시작하지만 때문에

mysql server has gone away 

그래서으로 시도 오류의 사이에서 실패 시도 wait_timeout을 늘림으로써이 문제를 해결할 수는 있지만 공유 호스트에 있기 때문에 실패했다. 날이

#1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation 

2. 솔루션 같은 것을 오류 부여합니다 시도 : mysqldump는 110000 행

mysqldump --user xxxxx --password=XXXXXXXXX Username wp_pc_products >> wp_pc_product.sql 

있는 테이블 백업 명령 다음

란을이 55M의 파일 크기 결과 그리고 단지 124 행을 포함하고 있습니다.

55M wp_pc_product.sql 

실제 문제 :

공유 VPS를 호스팅에서 내 데이터베이스를 마이그레이션하려고합니다.

+0

.sql 파일의 끝을 확인하십시오. 끝나지 않으면 (예 : 쿼리 줄 중간에서 멈춤) 덤프는 # 1 해결책과 동일한 시간 초과/중단 조건으로 인해 어려움을 겪고 있으며 godaddy와 도움을 요청해야합니다. –

+0

아니요. 이미 확인했습니다. 오류가 없습니다. 파일의 마지막 줄'- 덤프가 2016-07-14 11:38:17 에 완료되었습니다. –

+0

그 덤프는 beok이어야합니다. 500 메가 크기를 어떻게 알아 냈습니까? 라인 카운트가 db의 행 개수와 일치 할 필요는 없습니다 (특히 확장 삽입 구문을 사용하는 경우). 다음에는 값이 여러 개인 필드를 하나만 가져오고, 500 개의 삽입 ... 값 ... 인 경우, isnert .. values ​​(set1), (set2), (set3) 등을 실행합니다. 한 줄. –

답변

0

mysqldump은 하나만 필요합니다. > & 두 개가 아닌 >>. 그것을 바꿀 수 있습니까?

wp_pc_products 테이블의 경우, 마지막으로 내 보낸 테이블이 mysql 테이블의 어느 행인지 식별 ​​할 수 있습니까? -p 옵션을 사용하여 mysqldump을 사용하여 전체 데이터베이스를 내보내려고하면 어떻게됩니까? 그게 효과가 있니? & 다른 테이블을 내보내려고 했습니까? 완전히 내보냈는지 확인하십시오.

+0

이 문제는 중요하지 않습니다. '>'는 파일에 출력하고 기존 파일을 덮어 씁니다. '>>'는 단순히 생성/추가합니다. 데이터를 변경하지 않습니다. –

+0

나는 첫째로 하나를 사용하려고 시도했다.> 두 가지가 아니었다. 결과는 single> 연산자 –

+0

에 대해 동일했다. 어떻게 테이블의 어떤 행이 마지막으로 익스포트되는지를 알 수있다. 수동으로 확인해야합니까? 나는 그것이 어떤 정렬을했는지 모른다. –

0

아마 최대 허용 크기는 55메가바이트이 ​​솔루션 1, MySQL의 쉘에서이 명령을 시도 :

show variables like 'max%' ; 

그것은 바이트의 최대 허용 크기를 표시합니다.

이 명령으로 600MB 할 수있는 최대 허용 패킷 크기 설정 시도 할 수 있습니다 : 당신은 당신이 덤프 수 행에 제한을 발견했기 때문에 당신이 할 수있는,

set max_allowed_packet = 600*1024; 

해결 방법 2

을 이 플래그를 사용하여 여러 개의 작은 덤프를 수행

--where="1 limit 100" 

을 그리고 당신처럼 증가 계속 :

--where="101 limit 200" 

문서에 대한 --max_allowed_packet

문서에 대한 --where 플래그가