このドキュメントでは、コンソールとコマンドラインツールの両方を使用してデータを移行する方法について説明します。
コンソールによるデータの移行
コンソールによるデータの移行には、物理バックアップと論理バックアップの2つの方法があります。詳細については、次の内容をご参照ください。
コマンドラインツールによるデータの移行
1. MySQLコマンドラインツールmysqldumpを使用して、インポートするSQLファイルを次のように生成します。
ご注意:
mysqldumpを使用してエクスポートされたデータファイルは、購入したMySQLバージョンのSQL仕様と互換性がある必要があります。MySQLにログインして、`select version()を使用して対応するMySQLのバージョン情報を取得できます。生成されたSQLファイル名には、英語/数字/下線を使用できますが、「test」文字は使用できません。
移行元と移行先のデータベースのバージョン、文字セット、およびmysqldumpツールのバージョンが一致しているようにしてください。文字セットはパラメータ--default-character-setで指定できます。
データのインポートに失敗した場合、権限が原因である可能性があります。その際は、インポートファイルを生成時に、「--set-gtid-purged=OFF」パラメータを付与して再度ファイルを生成してください。
shell > mysqldump <options> <db_name> <tbl_name ...> > <bak_pathname>
<options>:エクスポートのオプションまたはパラメータです。よく使われるオプションには -h、-u、-p などがあり、パラメータには「--default-character-set」などがあります。
<db_name>:データベース名です。対象のデータベース名に置き換えてください。
<tbl_name>:テーブル名です。対象データベース配下にあるテーブル名に置き換えてください。
<bak_pathname>:エクスポート先のパス名です。実際にファイルを生成するパスに置き換えてください。
2. MySQLコマンドラインツールを使用して、次のように移行先データベースにデータをインポートします。
shell > mysql -h <hostname> -P <port> -u <username> -p < <bak_pathname>
<hostname>:リストア先となるターゲットホストに置き換えてください。
<port>:ターゲットホストのポート番号に置き換えてください。
<username>:ターゲットホストのデータベースのユーザー名に置き換えてください。
<bak_pathname>:バックアップファイルのフルパスに置き換えてください。
データの移行(Windowsシステム)
2. コマンドプロンプトを起動し、MySQLコマンドラインツールを使用して、移行先データベースにデータをインポートします。
3. 移行先MySQLデータベースにログインして、show databases;コマンドを実行すると、バックアップされたデータベースが移行先データベースにインポートされたことを確認できます。
データの移行(Linuxシステム)
1. CVMにログインして、MySQLコマンドラインツールmysqldumpを使用して、インポートするSQLファイルを生成します。MySQLのdb_blogデータベースを例にして説明します。
2. MySQLコマンドラインツールを使用して、データを移行先データベースにリストアします。
3. 移行先MySQLデータベースにログインして、show databases;コマンドを実行すると、バックアップされたデータベースが移行先データベースにインポートされたことを確認できます。
インポートされたデータファイルの文字セットの符号化方式について
1. MySQLにインポートされたデータファイルに文字セットの符号化方式が指定されていない場合は、MySQLで設定されている文字セットの符号化方式で実行します。
2. インポートされたデータファイルに文字セットの符号化方式が指定された場合は、指定された文字セットの符号化方式で実行します。
3. インポートされたデータファイルの文字セットの符号化方式がMySQLの現在の文字セットの符号化方式と異なる場合、文字化けが発生する可能性があります。
文字セットの符号化方式の詳細については、文字セットに関する使用制限の説明をご参照ください。 よくあるご質問
データインポート機能の使用時に「wait err=exit status 255, busi errmsg=import sql file failed, err=ERROR 1227 (42000) at line 24: Access denied; 」というエラーが発生します。どう対処すればよいですか?
データインポート機能でエラーコード42000が発生した場合、SQLファイルのインポート時にアクセスが拒否され、インポートが失敗したことを示しています。現在のユーザーに十分な権限がない可能性があります。以下の2つの方法で対処することをお勧めします。
MySQLコマンドラインツール mysqldump を使用し、--set-gtid-purged=OFF パラメータを付けてインポート用のSQLファイルを再生成してから、再度インポートをお試しください。SQLファイルの生成コマンドについては、TCCLIによるデータ移行 をご参照ください。 または、エラーメッセージに基づき、該当する行を手動でコメントアウトし、インポート時の権限の問題を回避することもできます。以下に例を示します。
SET @MYSOLDUMP TEMP LOG BIN = COSESSION.SQL LOG BIN;
SET @@SESSION.SQL LOG BIN = 0;
SET @@GLOBAL.GTID PURGED=