최근에 내 서버를 다른 웹 호스팅 제공업체 서버로 변경해야 합니다. 그렇게 하기 위해 내 MySQL 데이터베이스 크기가 내가 가진 액세스 권한으로 다운로드 및 업로드하기에는 너무 크다는 것을 발견했습니다.
phpMyAdmin을 사용하면 데이터를 다운로드할 필요 없이 현재 MySQL 서버에서 내보내고 새 MySQL 서버로 직접 가져올 수 있습니까?
답변1
"내가 가지고 있는 액세스 권한"이라는 문구입니다. 흥미롭다. 대역폭이 제한되어 있나요? 공간이 제한되어 있나요? 쉘 한정? 이를 설명하면 특정 매개변수에 더 적합한 솔루션을 명확히 하는 데 도움이 됩니다.
한 머신에서 다른 머신으로 DB를 가져오려면가지다파일을 전송합니다. 이 작업은 여러 가지 방법으로 수행할 수 있습니다.
1.) 전체 mysql 디렉토리를 복사합니다(물론 mysql을 중지한 후).
rsync -a main_host:/var/lib/mysql/ smaecond_host:/var/lib/mysql/
2.) mysqldump를 사용하여 데이터베이스를 파일로 덤프한 다음 해당 파일을 전송합니다.
메인 서버에서:
mysqldump > [local_file]
rsync [local_file] secondary:host
새 서버에서:
mysql < [local_file]
3.) Sneakernet 중 하나 또는 둘 다에 물리적으로 접근할 수 있는 경우 Sneakernet을 선택할 수 있습니다.
대역폭이 제한된 경우 rsync에 --bwlimit 스위치를 제공하여 xfer 속도를 제한할 수 있습니다. 공간이 제한되어 있다면 훨씬 더 큰 문제가 발생할 수 있습니다.
답변2
이는 phpMyAdmin을 사용하지 않으므로 귀하의 경우에는 적용되지 않을 수 있습니다.
MySQL을 사용하고 쉘 액세스 권한이 있는 경우 파이프와 함께 mysqldump를 사용하는 것을 고려하십시오.
http://www.cyberciti.biz/faq/mysqldump-pipe-mysql-output-and-input/
이렇게 하면 두 서버 모두의 테이블이 잠길 수 있습니다. 또한 SSH를 사용하지 않으면 데이터가 일반 텍스트로 전송됩니다. 나는 빠른 개인 네트워크 링크를 통해 이 방법을 자주 사용했습니다.