MySQL バージョン 3.23
を使用している場合、同じ浮動小数点形式をサポートする異なるアーキーテクチャ間で、MyISAM
テーブルの
.frm
、.MYI
、および
.MYD
の各ファイルをコピーできます(MySQL
はバイトスワップの問題を処理します)。 See
項7.1. 「MyISAM
テーブル」。
MySQL ISAM
データファイルおよびインデックスファイル(それぞれ、.ISD
および
*.ISM
)は、アーキーテクチャ依存であり、場合によっては
OS
にも依存します。現在のマシンとは異なるアーキーテクチャまたは
OS
を持つ別のマシンにアプリケーションを移動したい場合、そのマシンにファイルを単純にコピーするだけでは、データベースを移動することはできません。代わりに、mysqldump
を使用してください。
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.contents.gz
(この例で作成されるファイルは圧縮されています。)データベースの内容が格納されたファイルを移動先のマシンに転送し、そのマシン上で以下のコマンドを実行します。
shell>mysqladmin create db_name
shell>gunzip < db_name.contents.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 # データベース作成
shell>cat DUMPDIR/*.sql | mysql db_name # テーブル作成
shell>mysqlimport db_name DUMPDIR/*.txt # load data into tables
また、mysql
データベースも忘れずにコピーしてください。このデータベースには、権限テーブル
(user
、db
、host
)
が格納されているためです。mysql
データベースを配置するまでは、移動先のマシン上で
MySQL root
ユーザとしてコマンドを実行する必要があります。
mysql
データベースを移動先のマシンにデータベースをインポートしたら、mysqladmin
flush-privileges
を実行して、サーバに権限テーブル情報を再ロードさせます。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.