それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

mysqlテーブルコピー

MySQLをバックアップする方法

アプローチはふたつある。

  1. テーブルファイルを丸コピーする
  2. SQLをつかう

ファイルを丸コピーする これはちょっとチート臭い。けどこれが一番楽。(昔はよくやった。今でも使えるのかなぁ)

テーブルファイルを丸コピーする

 cd /var/lib/mysql/DATABASE_NAME
 cp TABLE_NAME.*  TABLE_NAME_2.*

MyISAMのころよくやった。InnoDBでは試してない。

SQLをつかう

bash> echo "CREATE table as TABLE_NAME from SELECT * FROM TABLE;" | mysql -p -u USERNAME
mysql> CREATE table as TABLE_NAME from SELECT * FROM TABLE;

SQL経由じゃないと怖いからヤダってときは後者。ただ前者の方が圧倒的に早い。

ちなみにmysqlのDumpコマンドは後者のアプローチ

2014-08-04追記

サンプルが動かなくなってたので記述修正。

mysql のコピーは以下のとおりに出来る。

mysql> CREATE table COPY_TABLE_NAME  SELECT * FROM ORIGINAL_TABLE;