データベースのバックアップと移行に役立つ!MySQLダンプのエクスポート
コマンドラインからMySQLダンプをエクスポートする方法
MySQLデータベースのバックアップや移行には、mysqldump
コマンドを使うのが一般的です。このコマンドは、データベース全体または特定のテーブルを、SQL形式のダンプファイルとしてエクスポートできます。
コマンドライン操作
以下のコマンドで、データベース全体をダンプファイルとしてエクスポートできます。
mysqldump -u ユーザー名 -p パスワード データベース名 > ダンプファイル名.sql
オプション
-u
: 接続するユーザー名を指定します。-p
: ユーザーのパスワードを指定します。-h
: 接続するホスト名を指定します (デフォルトはlocalhost)。-B
: データベース全体をエクスポートします。--where
: 特定の条件に合致するデータのみをエクスポートします。--compress
: ダンプファイルを圧縮します。
例
- データベース全体を
mydb.sql
というファイルにエクスポート
mysqldump -u root -p mydb > mydb.sql
users
テーブルのみをusers.sql
というファイルにエクスポート
mysqldump -u root -p mydb -t users > users.sql
age
が 20 歳以上のユーザーのみをusers_over_20.sql
というファイルにエクスポート
mysqldump -u root -p mydb -t users --where "age >= 20" > users_over_20.sql
mysqldump
コマンドの詳細については、以下のリソースを参照してください。
注意事項
- ダンプファイルをエクスポートする前に、データベースをバックアップしておくことをお勧めします。
- ダンプファイルは、安全な場所に保存してください。
- ダンプファイルは、MySQLサーバーのバージョンと互換性があることを確認してください。
補足
- コマンドライン操作に慣れていない場合は、MySQL WorkbenchなどのGUIツールを使うこともできます。
- ダンプファイルをインポートするには、
mysql
コマンドまたはMySQL Workbenchを使うことができます。
mysqldump -u root -p mydb > mydb.sql
解説
-u root
: ユーザー名をroot
に指定しています。-p
: パスワードを省略しています (パスワードが設定されていない場合は省略可能です)。mydb
: データベース名をmydb
に指定しています。> mydb.sql
: ダンプファイル名をmydb.sql
に指定しています。
特定のテーブルをダンプファイルとしてエクスポート
mysqldump -u root -p mydb -t users > users.sql
-t users
: テーブル名をusers
に指定しています。
mysqldump -u root -p mydb -t users --where "age >= 20" > users_over_20.sql
--where "age >= 20"
:age
が 20 歳以上のユーザーのみを抽出しています。
gzip 圧縮を使用してダンプファイルを作成
mysqldump -u root -p mydb | gzip -9 > mydb.sql.gz
| gzip -9
:mysqldump
の出力結果をgzip
コマンドにパイプし、圧縮レベル 9 で圧縮しています。
ダンプファイルの復元
mysql -u root -p mydb < mydb.sql
< mydb.sql
:mydb.sql
ファイルの内容を MySQL サーバーに読み込みます。
mysql -u root -p mydb < users.sql
mysqldump -u root -p mydb --ssl-mode=REQUIRED --ssl-ca=/path/to/ca-cert.pem > mydb.sql
--ssl-mode=REQUIRED
: SSL接続を必須にします。--ssl-ca=/path/to/ca-cert.pem
: SSL証明書ファイルのパスを指定します。
mysql -u root -p mydb --ssl-mode=REQUIRED --ssl-ca=/path/to/ca-cert.pem < mydb.sql
mysqldump -u root -p mydb --no-data > mydb_schema.sql
mysqldump -u root -p mydb --skip-add-drop-table --no-create-info > mydb_data.sql
diff mydb_schema.sql mydb_data.sql > mydb_diff.sql
--no-data
: データをエクスポートせずに、スキーマのみをエクスポートします。--skip-add-drop-table
:ADD TABLE
やDROP TABLE
ステートメントを生成しません。--no-create-info
: テーブル作成時の情報
コマンドライン以外でMySQLダンプをエクスポートする方法
MySQL Workbenchは、MySQLの管理に特化したGUIツールです。MySQL Workbenchを使えば、以下の手順で簡単にダンプファイルをエクスポートできます。
- MySQL Workbenchを起動し、接続したいデータベースに接続します。
- 左側のナビゲーションツリーで、エクスポートしたいデータベースまたはテーブルを選択します。
- 右クリックメニューから「データエクスポート」を選択します。
- ダンプファイルの種類、保存場所、その他のオプションを選択します。
- 「開始」ボタンをクリックして、エクスポートを実行します。
phpMyAdminは、Webブラウザ上で操作できるMySQL管理ツールです。phpMyAdminを使えば、以下の手順で簡単にダンプファイルをエクスポートできます。
- WebブラウザでphpMyAdminにアクセスします。
- 上部のタブから「エクスポート」を選択します。
その他のツール
上記以外にも、MySQLGUI、Navicat for MySQLなどのGUIツールや、SQuirreL SQL ClientなどのJDBCツールを使って、MySQLダンプをエクスポートすることができます。
手動でエクスポート
MySQLのデータは、SELECT
ステートメントを使って手動でエクスポートすることもできます。
SELECT * FROM テーブル名 > ダンプファイル名.sql;
この方法は、データ量が少な場合や、特定のデータのみをエクスポートする場合に有効です。
コマンドライン以外にも、MySQLダンプをエクスポートする方法はいくつかあります。それぞれの方法にはメリットとデメリットがあるので、状況に合わせて最適な方法を選択してください。
mysql database command-line