- 更新日: 2014年5月9日
- MySQL & DB
MySQL で特定のテーブルのみをバックアップ
スポンサーリンク
Railsでマイグレーションした後、Rakeタスクでプログラムを組んで、DBに不変なマスターデータやサンプルデータ等を流し込んだ場合、db:migrate:reset した後に、同じRakeタスクからデータを流し込むと時間がかかりすぎる場合がある。そういうケースでは、2回目移行は、1回目のRakeタスクで保存したDBデータから取得できる sql ダンプを使ってデータを流し込んだほうが早いだろうと考えました。
【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
スポンサーリンク
mysqldump コマンドでテーブルごとにバックアップ
以下の書式で mysqldump コマンドを利用します。
1 2 3 |
$ mysqldump -u ユーザー名 -p -t データベース名 テーブル1 テーブル2 ... > ダンプファイル名 |
デーブルは1つでも複数でも指定可能。Rails の場合、-t オプションを付けたほうが良いと思います。これは、「テーブル作成情報(CREATE TABLE ステートメント)を書き込まない」オプション。Rails の場合、テーブル作成情報はマイグレーションファイルに含まれるので、sql ダンプには不要です。
blog_development データベースの posts テーブルをバックップする例。
1 2 3 |
$ mysqldump -u root -p -t blog_development posts > posts_dump.sql |
sqlダンプファイルからDBへデータ復元
復元には、mysql コマンドを使います。
1 2 3 |
$ mysql -u ユーザ名 -p データベース名 < ダンプファイル名 |
先程の例での復元。
1 2 3 |
$ mysql -u root -p blog_development < posts_dump.sql |
以上です。
スポンサーリンク
現場で使えるMySQLは長くお世話になっていて、MySQL触る人には必須の本。
>> 次の記事 : Macローカル開発環境のMySQLソケットの場所を変更
<< 前の記事 : MySQLでGROUP BYとORDER BY併用時の注意
- MySQL & DB の関連記事
- MySQLでBLOB/TEXT型のカラムにはデフォルト値を設定できない
- SQLite3でDBテーブルをdumpバックアップ
- Warning: mysql_connect() PHPからMySQL接続でsocketエラー
- phpMyAdminでMySQLをバックアップ(エクスポート)
- MySQLが起動しないエラー(The server quit without updating PID file)
- phpMyAdminで#2002 Cannot log in to the MySQL serverエラー
- libaio.so.1, openssl-devel がなくて mysql-server, mysql-devel をインストールできないエラー
- MySQLオプション(/etc/my.cnf)の設定例
- my.cnf の innodb_data_file_path, innodb_log_file_size 設定で MySQL が起動しなくなる場合の対処
- my.cnfで設定するMySQLオプションで重要そうなのまとめ
Leave Your Message!