MySQLで、テーブルをコピーしたい時のコマンドラインを紹介します!毎度ググるのは時間がもったいないのでこの記事で解決しましょう!
目次
別名テーブルを作成し、データごとバックアップを取りたい
今のテーブル構造を大きく変える要件実現のため、現在のテーブルをテーブル構造・データ両方そのまままるっとバックアップを取っておきたい、そんな時のためのコマンドです。以下のワンライナーコマンドで1テーブルコピーできます。
CREATE TABLE newtable SELECT * FROM oldtable;
これだけ。1行で完結です🧸
ダンプファイル(バックアップ)を取る
ダンプファイルを作れば、他の環境・サーバーにファイルを持っていってそちらでテーブルを再構築もできますね!
コピーしたい(ダンプしたい)テーブルが1つの場合
$ mysqldump -u root -p -h xxx.xxx.xx.xxx dbname tablename1 > tablename_dump.sql
コピーしたい(ダンプしたい)テーブルが複数の場合
$ mysqldump -u root -p -h xxx.xxx.xx.xxx dbname tablename1 tablename2 tablename3 > tables_dump.sql
データベース丸ごとコピーしたい(ダンプしたい)場合
$ mysqldump -u root -p -h xxx.xxx.xx.xxx dbname > db_dump.sql
コマンド解説
–h
はホストを指定なのでローカルサーバーならば127.00.1
、リモートサーバーならそのサーバーのIPにします。
-u
はMySQLにログインするユーザーを指定します。rootでないなら、rootでなく任意のユーザー名。
そして、>
の右側に書いたファイルにダンプファイルが出力されます。パスごと書けば、出力ファイルの置き場所も指定可能。
ダンプファイルをDBに入れる
上で作ったダンプファイルを、再現したい環境に移動したら以下のコマンドでその環境のDBにテーブル構造とデータを再現できます。
$ mysql -u root -p dbname < ./db_dump.sql
左辺のDBへ、右辺のダンプファイルを取り込めます。
MySQL関連の他記事はこちら
UoPeople・プログラミング関連の筆者のつぶやき
コメント