MySQLで指定したテーブルのデータを他のデータベースに入れる

投稿者: | 2017年2月17日

mysqldumpを使用して一旦データを抽出し、その後でsource文を使用してデータを挿入します。
まずはmysqldumpを使用して抽出したいデータベースとテーブルを指定します。

$ mysqldump -u ユーザー名 -p -h ホスト名 -P 3306 -t データベース名 テーブル名 > ファイル名

実行が完了するとファイル名で指定したパスに結果が出力されます。
結果は全てINSERT文として出力されます。
上記のコマンドでは「-t」オプションを使用しているためcreate文は出力されません。
続いてデータの挿入です。
source文を使用します。
mysqlコマンドで外から流してもいいですし、mysqlに接続してから普通にコマンドを実行しても問題ありません。
下記の方法は後者になります。

$ mysql -h ホスト名 -P 3306 -u ユーザー名 -p
Enter password:
mysql>user データベース名;
Database changed
mysql>source ファイル名

今回は2つのRDS間で特定のテーブルに対してデータを複製をしたかったのでこのような方法を取りました。
テーブル全体であれば停止が必要なもののスナップショットをそのまま復元するという方法もあります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA