この記事では、mysqldumpおよびmysqlコマンドを使用してLinuxのコマンドラインからMySQLデータベースをダンプおよび復元する適切な方法を示します。
MySQLまたはMariaDBデータベースを使用している場合は、データのバックアップと復元の方法を理解することが非常に重要です。さらに、データベースの定期的なバックアップを保持する必要があります。これにより、アプリケーションがクラッシュしたり、システム障害によってデータが破損したりした場合に、データを復元できます。
MySQLとMariaDBには、データベースをすばやく簡単にダンプおよび復元するために使用できるコマンドラインツールが含まれています。 mysqldump
ツールは、データベースのコンテンツをテキストファイルにエクスポートするために使用されますが、mysql
クライアントを使用して、テキストファイルからMySQL/MariaDBデータベースにデータをインポートできます。
MySQLダンプコマンドの使用方法
mysqldump
コマンドラインユーティリティは、データベースをSQLテキストファイルにエクスポートします。つまり、MySQLデータベースダンプを取得するために使用されます。
mysqldump
の構文 コマンドは以下のとおりです:
mysqldump -u [username] -p [database_name] > [filename].sql
場所:
- ユーザー名 MySQL/MariaDBのユーザー名です。
- -p このユーザーのパスワードの入力を求めます。
- database_name バックアップするデータベースの名前です。
- filename.sql バックアップを含むSQLダンプファイルへのフルパスです。
データベースのプロシージャ、関数、ビュー、およびイベントは、バックアップ時にダンプされます。
mysqldump:単一のMySQLデータベースをバックアップする
この例では、データベースの名前はmy_wordpress
です。 。これを、エクスポートするデータベースの名前に置き換えます。構文に従って、バックアップファイルは現在の場所に作成されます。
mysqldump -u root -p my_wordpress > my_wordpress_backup.sql
コマンドの実行後、MySQLルートパスワードを入力します。
これにより、my_wordpress_backup.sql
という名前のMySQLダンプファイルが作成されます。 これには、テーブルを作成し、データを既存のデータベースに復元するためのすべてのSQLステートメントが含まれています。エクスポートプロセス中にエラーが発生した場合は、mysqldump
それらを画面に印刷します。
このコマンドは視覚的な出力を生成しませんが、my_wordpress_backup.sql
の内容を調べることができます headコマンドを使用して、それが正当なMySQLダンプファイルであるかどうかを確認します。
head -n 5 my_wordpress_backup.sql
-- MariaDB dump 10.19 Distrib 10.5.9-MariaDB, for Linux (x86_64)
-- Host: localhost Database: my_wordpress
-- Server version 10.3.27-MariaDB-0+deb10u1
mysqldump:複数のMySQLデータベースをバックアップする
1つのコマンドで複数のMySQLデータベースをバックアップするには、--databases
を使用する必要があります オプションの後に、バックアップするデータベースのリストが続きます。さらに、結果ファイルを任意の場所に配置できます。
次のコマンドを実行して、MySQLダンプファイルmy_backup.sql
を作成します /home/backups
にあります my_wordpress
という名前の2つのデータベースのディレクトリ およびftpusers
。
mysqldump -u root -p --databases my_wordpress ftpusers > /home/backups/my_backup.sql
mysqldump:すべてのMySQLデータベースをバックアップ
--all-databases
を使用します すべてのMySQLデータベースをバックアップするオプション:
mysqldump -u root -p --all-databases > all_db_backup.sql
データベースのサイズが非常に大きい場合は、出力を圧縮することをお勧めします。これを行うには、出力をgzip
にパイプするだけです。 コマンドを実行し、以下に示すようにファイルにリダイレクトします。
mysqldump -u root -p my_wordpress | gzip > my_wordpress_backup.sql.gz
mysql:MySQLダンプファイルからMySQLを復元する
mysqldump
で作成されたバックアップを復元するには 、mysql
を使用する必要があります コマンド。
mysql -u [username] -p [database_name] < [filename].sql
どこ
- ユーザー名 MySQL/MariaDBのユーザー名です。
- -p このユーザーのパスワードの入力を求めます。
- database_name 復元するデータベースの名前です。
- filename.sql バックアップを含むSQLダンプファイルへのフルパスです。
mysql:単一のMySQLデータベースを復元する
特定のデータベースのMySQLダンプファイルからすべてのテーブルを復元できます。
復元は、以下のコマンドを使用して実行するだけです。ここでも、ユーザーを指定し、パスワードの入力を求められ、my_wordpress_backup.sql
を渡します。 データベースにファイルmy_wordpress
。
mysql -u root -p my_wordpress < my_wordpress_backup.sql
MySQLユーザーのパスワードの入力を求められます。
これが完了すると、データベースはMySQLの実行中のインスタンスで使用できるようになります。インポート元のMySQLダンプファイルも引き続き存在するため、この時点で安全に保存するか、不要になった場合は削除することができます。
mysql:すべてのMySQLデータベースを復元する
MySQLダンプファイルから任意のMySQLサーバーのすべてのデータベースを別のMySQLサーバーに復元できます。
mysql -u root -p < all_db_backup.sql
これで、上記の手順に従って、データベースファイルの定期的なバックアップを維持し、必要に応じてデータを復元できます。
このチュートリアルは、新しいサーバーに移行する場合にも適用されます。古いサーバーのデータベースをバックアップし、MySQLダンプファイルを新しいサーバーにアップロードするだけです。新しいサーバーに宛先データベースを作成し、アップロードされたMySQLダンプファイルを新しいデータベースで実行します。さらに、古いMySQLサーバーから新しいサーバーにユーザーと権限を再作成する必要もあります。
詳細については、公式ドキュメントへのリンクをご覧ください。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。