여러분은 MyISAM 테이블용 .frm, .MYI, 및 .MYD 파일을 동일한 부동 소수점 포맷을 지원하는 서로 다른 머신 사이에서 이동 시킬 수 있다. Section 14.1, “MyISAM 스토리지 엔진”을 참조 할 것.
서로 다른 머신간에 데이터 베이스를 전달할 필요가 있을 경우에는, mysqldump를 사용해서 SQL명령문을 갖는 파일을 만든다. 그 다음에는 다른 머신에 전달하고 mysql 클라이언트의 입력 값으로 사용한다.
mysqldump --help옵션을 사용해서 사용 가능한 옵션을 알아 본다. 데이터를 새로운 버전의 MySQL로 전달한다면, mysqldump --opt 를 사용해서 최대한 최적화를 시켜서 덤프를 함으로서 크기를 작게 할 수 있다.
두 머신간의 데이터 이동(빠르지는 않더라도) 방법 중에 가장 간단한 것은 데이터 베이스가 있는 머신에서 아래의 명령어들을 실행하는 것이다:
shell> mysqladmin -h 'other_hostname' create db_name
shell> mysqldump --opt db_name | mysql -h 'other_hostname' db_name
속도가 느린 네트워크상에 있는 리모트 머신에서 데이터를 복사하고자 한다면, 다음의 명령어를 사용하면 된다:
shell> mysqladmin create db_name
shell> mysqldump -h 'other_hostname' --opt --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 데이터 베이스를 갖기 전까지는 그 곳에서 root 사용자로서 명령어를 실행해야 할 것이다.
mysql 데이터 베이스를 새로운 머신으로 전송한 다음에는, mysqladmin flush-privileges를 실행해서 서버가 그랜트 테이블 정보를 다시 로드하도록 만든다.
