
すべてのMySQLデータベースをエクスポートおよびインポートする方法
多くの開発者やプロユーザーは、データベースのニーズにMySQLを利用しています。MySQLからすべてのデータベースをエクスポートまたはダンプする方法、単一のデータベースをダンプする方法、そしてdatabase.sqlファイルからすべてのデータベースをMySQLにインポートする方法を解説します。
MySQLを操作するためのGUIベースのツールもありますが、ここではコマンドラインに焦点を当てます。MySQLコマンドは、Linux、Mac OS、Mac OS Xなど、あらゆるUnix OS、あるいはMySQLを実行しているあらゆるOS上のあらゆるバージョンのデータベースソフトウェアで動作します。
ここでは、MySQL がすでにインストールされ実行されているものと想定します。そうでない場合は、こちらで Mac OS での MySQL サーバーの起動と停止について学習し、ここから MySQL をダウンロードできます。また、完全な Web サーバー スタックをお探しの場合は、使いやすい Mac 用の MAMP を確認してください。
コマンドライン経由でMySQLからすべてのデータベースをダンプする方法
バックアップや移行などのために、MySQL からすべてのデータベースを .sql ファイルにダンプする最も簡単な方法は、次のように –all-databases フラグを使用することです。
mysqldump --all-databases > all_databases_dump.sql
このコマンドはすべてのデータベースをエクスポートするため、データベース名を指定する必要はありません。mySQLに保存されているすべてのデータベースは、現在の作業ディレクトリ内の「all_databases_dump.sql」エクスポートファイルにダンプされます。
必要であれば、すべてのデータベースをダンプするときにユーザー名とパスワードを指定することもできます。この場合、ユーザー名は root です。
mysqldump -u root -p --all-databases > all_databases.sql
mysql データベースがダンプされた後、ここで説明されているようにそこから tar gzip を作成することが私の個人的な好みですが、これは完全にオプションです。
MySQLから特定のデータベースをエクスポートする方法
すべてのデータベースをエクスポートするのではなく、名前を指定して特定のデータベースをダンプしたい場合も、同様に簡単です。
mysqldump database_name > database_name_dump.sql
mysqldump コマンドには、データベースのエクスポートとバックアップに役立つ多くのパラメーターとフラグがあります。詳細については、「man mysqldump」のマニュアル ページを参照するか、dev.mysql Web サイトを参照してください。
すべてのデータベースをMySQLにインポートする方法
もちろん、データベースのダンプがある場合は、それをMySQLにインポートすることが重要です。database.sqlファイルからすべてのデータベースをコマンドライン経由でMySQLにインポートする最も簡単な方法は次のとおりです。
mysql database_name < database_dump.sql
また、データベースのエクスポートと同様に、インポート時に必要に応じてユーザー名を指定することもできます。
mysql -u root -p < database_dump.sql
必要に応じて、別のユーザー名またはデータベースも指定します。
mysql -u user -p database_name < database_dump.sql
特定のデータベースをMySQLにインポートする
大きなダンプ内の特定のデータベースを名前でインポートすることもできます。
mysql --one-database database_name < all_databases.sql
これまでと同様に、データベースを mysql にインポートする際に問題がある場合は、「man mysql」でマニュアル ページを参照するか、mysql 開発者サイトにある公式ドキュメントを参照してください。
MySQL でデータベースをエクスポートしたりインポートしたりするための興味深いコツをご存知ですか?コメントで教えてください!