2.11.5 MySQL 데이터베이스 다른 시스템에 복사
데이터베이스를 다른 아키텍처간에 이동해야하는 경우 mysqldump를 사용하여 SQL 문을 포함하는 파일을 만듭니다. 다음 파일을 다른 컴퓨터로 전송하고 mysql 클라이언트의 입력으로 처리합니다.
같은 부동 소수점 형식을 지원하는 다른 아키텍처간에 MyISAM
테이블의 .frm
, .MYI
, 및 .MYD
파일을 복사 할 수 있습니다. (MySQL은 바이트 스와핑 문제를 처리합니다.) 섹션 15.2 "MyISAM 스토리지 엔진" 을 참조하십시오.
사용할 수있는 옵션을 보려면 mysqldump --help를 사용합니다.
데이터베이스를 두 컴퓨터에서 사이에 이동하는 가장 쉬운 (그러나 빠르지는 않게) 방법은 데이터베이스를 탑재 한 시스템에서 다음 명령을 실행하는 것입니다.
shell>mysqladmin -h ' other_hostname ' create db_name
shell>mysqldump db_name | mysql -h ' other_hostname ' db_name
데이터베이스를 원격 컴퓨터에서 느린 네트워크를 통해 복사하려면 다음 명령을 사용할 수 있습니다.
shell>mysqladmin create db_name
shell>mysqldump -h ' other_hostname ' --compress db_name | mysql db_name
덤프를 파일에 저장하고 그 파일을 대상 컴퓨터에 전송하고 해당 파일을 거기 데이터베이스에로드 할 수 있습니다. 예를 들어, 데이터베이스를 소스 시스템의 압축 파일에 다음과 같이 덤프 수 있습니다.
shell> mysqldump --quick db_name | gzip > db_name .gz
데이터베이스의 내용을 포함한 파일을 타겟 시스템으로 전송하고 거기서 다음 명령을 실행합니다.
shell>mysqladmin create db_name
shell>gunzip < db_name .gz | mysql db_name
데이터베이스의 전송에 mysqldump 및 mysqlimport를 사용할 수도 있습니다. 큰 테이블의 경우, 이것은 단순히 mysqldump를 사용하는 것보다 매우 빠릅니다. 다음 명령에서 DUMPDIR
은 mysqldump의 출력을 저장하는 데 사용되는 디렉토리의 전체 경로 이름입니다.
첫째로, 출력 파일의 디렉토리를 작성하여 데이터베이스를 덤프합니다.
shell>mkdir DUMPDIR
shell>mysqldump --tab= DUMPDIR db_name
다음 DUMPDIR
디렉토리의 파일을 대상 컴퓨터의 해당 디렉토리에 전송하고 해당 파일을 거기에 MySQL에로드합니다.
shell>mysqladmin create db_name # create database
shell>cat DUMPDIR /*.sql | mysql db_name # create tables in database
shell>mysqlimport db_name DUMPDIR /*.txt # load data into tables
mysql
데이터베이스를 복사하는 것을 잊지 마십시오. 부여 테이블이 거기에 포함되어 있기 때문입니다. 새로운 기계에 mysql
데이터베이스가 준비 될 때까지 명령을 MySQL root
사용자로 실행해야하는 경우가 있습니다.
mysql
데이터베이스를 새 시스템으로 가져온 후 mysqladmin flush-privileges를 실행하는 서버에 부여 테이블의 정보를로드합니다.