.frm
、.MYI
、および
.MYD
ファイルを
MyISAM
テーブルに同じフローティングポイントフォーマットをサポートしている異なるアーキテクチャー間でコピーでします。(MySQL
はバイトスワッピング問題を処理します)。The MyISAM
Storage Engine
を参照してください。
データベースを異なるアーキテクチャー間で移動する場合、mysqldump を使用して SQL ステートメントを含むファイルを作成します。次にそのファイルを別のマシンに転送して mysql クライアントの入力として扱います。
利用できるオプションを表示するには mysqldump --help を使用します。
データベースを 2 つのマシンで間で移動するもっとも容易な方法 (速くはないが) はデータベースを搭載したマシン上で以下のコマンドを実行することです。
shell>mysqladmin -h '
shell>other_hostname
' createdb_name
mysqldump
db_name
| mysql -h 'other_hostname
'db_name
す。データベースを遠隔のマシンから速度の遅いネットワークにコピーするには、以下のコマンドを使用します。
shell>mysqladmin create
shell>db_name
mysqldump -h '
other_hostname
' --compressdb_name
| mysqldb_name
ダンプをファイルに保存して、そのファイルをターゲットマシンに転送し、そのファイルをそこのデータベースにロードすることもできます。たとえば、データベースをソースマシンの圧縮ファイルに以下のようにダンプします。
shell> mysqldump --quick db_name
| gzip > db_name
.gz
データベースのコンテンツを含んだファイルをターゲットマシンに転送しそこで以下のコマンドを実行します。
shell>mysqladmin create
shell>db_name
gunzip <
db_name
.gz | mysqldb_name
データベースの転送に
mysqldump および
mysqlimport
を使用することもできます。大きなテーブルの場合、これは単に
mysqldump
を使用するよりも非常に速く転送できます。次のコマンドで、DUMPDIR
は mysqldump
の出力の保存に使用されるディレクトリのフルパス名です。
最初に、その出力ファイルのディレクトリを作成してデータベースをダンプします。
shell>mkdir
shell>DUMPDIR
mysqldump --tab=
DUMPDIR
db_name
次に DUMPDIR
ディレクトリのファイルをターゲットマシンの相当するディレクトリに転送して、そのファイルをそこの
MySQL にロードします。
shell>mysqladmin create
shell>db_name
# create databasecat
shell>DUMPDIR
/*.sql | mysqldb_name
# create tables in databasemysqlimport
db_name
DUMPDIR
/*.txt # load data into tables
mysql
データベースのコピーを忘れないでください。そこにグラントテーブルが保存されています。コマンドを
MySQL root
ユーザーとして新しいマシンで
mysql
データベースの用意できるまで実行することもできます。
mysql
データベースを新しいマシンにインポートしたら、mysqladmin
flush-privileges
を実行してサーバーにグラントテーブルの情報をロードさせます。