Loading...
MySQL 9.5 Reference Manual 9.5의 3.15 Copying MySQL Databases to Another Machine의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
서로 다른 아키텍처 간에 데이터베이스를 전송해야 하는 경우, mysqldump를 사용하여 SQL 문을 포함하는 파일을 생성할 수 있습니다. 그런 다음 그 파일을 다른 머신으로 전송하고, 그 파일을 mysql 클라이언트의 입력으로 전달하면 됩니다.
사용 가능한 옵션을 확인하려면 mysqldump --help를 사용하십시오.
참고
덤프를 생성하는 서버에서 GTID가 사용 중인 경우
(gtid_mode=ON),
기본적으로
mysqldump는 덤프에
gtid_executed 세트의 내용을 포함하여
이를 새 머신으로 전송합니다. 그 결과는 관련된 MySQL Server
버전에 따라 달라질 수 있습니다.
사용 중인 버전에서 어떤 일이 발생하는지, 그리고 기본 동작의 결과가 귀하의 상황에 적합하지 않을 경우 동작을 어떻게 변경할 수 있는지 알아보려면 mysqldump의 --set-gtid-purged 옵션에 대한 설명을 확인하십시오.
데이터베이스를 두 머신 사이에서 이동하는 가장 쉬운 방법(가장 빠른 방법은 아님)은 데이터베이스가 위치한 머신에서 다음과 같은 커맨드를 실행하는 것입니다:
1mysqladmin -h 'other_hostname' create db_name 2mysqldump db_name | mysql -h 'other_hostname' db_name
느린 네트워크를 통해 원격 머신에서 데이터베이스를 복사하려는 경우, 다음과 같은 커맨드를 사용할 수 있습니다:
1mysqladmin create db_name 2mysqldump -h 'other_hostname' --compress db_name | mysql db_name
또한 덤프를 파일로 저장하고, 그 파일을 대상 머신으로 전송한 다음, 그 파일을 해당 머신의 데이터베이스에 로드할 수도 있습니다. 예를 들어, 소스 머신에서 다음과 같이 데이터베이스를 압축된 파일로 덤프할 수 있습니다:
1mysqldump --quick db_name | gzip > db_name.gz
데이터베이스 내용을 포함하는 파일을 대상 머신으로 전송하고, 거기에서 다음 커맨드를 실행하십시오:
1mysqladmin create db_name 2gunzip < db_name.gz | mysql db_name
또한 mysqldump와
mysqlimport를 사용하여 데이터베이스를 전송할 수
있습니다. 큰 테이블의 경우, 이는 단순히
mysqldump만 사용하는 것보다 훨씬
빠릅니다. 다음 커맨드에서 _DUMPDIR_는
mysqldump 출력물을 저장하는 데 사용하는
디렉터리의 전체 경로명을 나타냅니다.
먼저, 출력 파일을 위한 디렉터리를 생성하고 데이터베이스를 덤프합니다:
1mkdir DUMPDIR 2mysqldump --tab=DUMPDIR 3 db_name
그런 다음 DUMPDIR 디렉터리의 파일들을
대상 머신의 해당 디렉터리로 전송하고, 그곳에서 MySQL에
파일들을 로드합니다:
1mysqladmin create db_name # create database 2cat DUMPDIR/*.sql | mysql db_name # create tables in database 3mysqlimport db_name 4 DUMPDIR/*.txt # load data into tables
grant 테이블이 저장되는 곳이 mysql 데이터베이스이므로,
이를 복사하는 것을 잊지 마십시오. 새 머신에서
mysql 데이터베이스를 사용할 수 있게 될 때까지는 MySQL
root 사용자로 커맨드를 실행해야 할 수도 있습니다.
새 머신에서 mysql 데이터베이스를 import한 후,
서버가 grant 테이블 정보를 다시 로드하도록
mysqladmin flush-privileges를 실행하십시오.
3.14 Rebuilding or Repairing Tables or Indexes
4 Downgrading MySQL