前書き
データベースをインポートおよびエクスポートできることは、重要なスキルです。 バックアップおよび復元の目的でデータダンプを使用して、緊急時にデータベースの古いコピーを回復できます。 これらを使用して、データを新しいサーバーまたは開発環境に移行することもできます。
MySQLおよびMariaDBでのデータベースダンプの操作は非常に簡単です。 このチュートリアルでは、データベースをエクスポートする方法と、MySQLおよびMariaDBのダンプファイルからインポートする方法について説明します。
前提条件
MySQLまたはMariaDBデータベースをインポートおよび/またはエクスポートするには、次のものが必要です。
-
MySQLまたはMariaDBを実行しているLinuxサーバーへのアクセス
-
データベース名とそのユーザー資格情報
データベースのエクスポート
mysqldump
コンソールユーティリティは、データベースをSQLテキストファイルにエクスポートするために使用されるため、転送や移動が比較的簡単になります。 データベース名自体と、データベースへの少なくとも完全な読み取り専用アクセスを許可する権限を持つアカウントのユーザー名とパスワードが必要になります。
次のコマンド構造を使用してデータベースをエクスポートします。
mysqldump -u username -p database_name > data-dump.sql
-
username
は、データベースにログインできるユーザー名です。 -
database_name
は、エクスポートされるデータベースの名前です。 -
data-dump.sql
は、出力が保存される現在のディレクトリ内のファイルです。
このコマンドは視覚的な出力を生成しませんが、次のコマンドを実行することで、filename.sql
の内容を調べて、それが正当なSQLダンプファイルであるかどうかを確認できます。
head -n 5 data-dump.sql
ファイルの先頭は次のようになり、database_name
という名前のデータベースのMySQLダンプであることを示しています。
SQL dump fragment-- MySQL dump 10.13 Distrib 5.7.16, for Linux (x86_64)
--
-- Host: localhost Database: database_name
-- ------------------------------------------------------
-- Server version 5.7.16-0ubuntu0.16.04.1
エクスポートプロセス中にエラーが発生した場合、mysqldump
は代わりにそれらを画面に明確に出力します。
データベースのインポート
既存のダンプファイルをMySQLまたはMariaDBにインポートするには、新しいデータベースを作成する必要があります。 これは、ダンプファイルの内容がインポートされる場所です。
まず、rootまたは新しいデータベースを作成するのに十分な権限を持つ別のユーザーとしてデータベースにログインします。
mysql -u root -p
これにより、MySQLシェルプロンプトが表示されます。 次に、次のコマンドで新しいデータベースを作成します。 この例では、新しいデータベースはnew_database
と呼ばれます。
CREATE DATABASE new_database;
この出力が表示され、作成されたことが確認されます。
OutputQuery OK, 1 row affected (0.00 sec)
次に、CTRL+D
を押してMySQLシェルを終了します。 通常のコマンドラインから、次のコマンドを使用してダンプファイルをインポートできます。
mysql -u username -p new_database < data-dump.sql
-
username
は、データベースにログインできるユーザー名です。 -
newdatabase
は、新しく作成されたデータベースの名前です -
data-dump.sql
は、現在のディレクトリにある、インポートされるデータダンプファイルです。
コマンドが正常に実行された場合、出力は生成されません。 プロセス中にエラーが発生した場合、mysql
は代わりにそれらを端末に出力します。 MySQLシェルに再度ログインしてデータを検査することにより、データベースがインポートされたことを確認できます。 これは、USE new_database
を使用して新しいデータベースを選択し、SHOW TABLES;
または同様のコマンドを使用してデータの一部を確認することで実行できます。
結論
これで、MySQLデータベースからデータベースダンプを作成する方法と、それらを再度インポートする方法がわかりました。 mysqldump
には、ダンプの作成方法を変更するために使用できる複数の追加設定があります。これについては、official mysqldump documentation pageから詳しく知ることができます。