MySQLまたはMariaDBでデータベースをインポートおよびエクスポートする方法

導入

データベースのインポートおよびエクスポートは、ソフトウェア開発における一般的なタスクです。データのダンプを使用して情報をバックアップおよびリストアすることができます。また、それらを使用してデータを新しいサーバーや開発環境に移行することもできます。

このチュートリアルでは、MySQLまたはMariaDBのデータベースダンプを操作します(コマンドは互換性があります)。具体的には、データベースをエクスポートし、そのダンプファイルからデータベースをインポートします。

DigitalOcean Managed Databases」を使用してデータベースを1クリックでデプロイします。DigitalOceanにスケーリング、メンテナンス、およびアップグレードを任せましょう。

前提条件

MySQLまたはMariaDBのデータベースをインポートまたはエクスポートするには、以下が必要です:

  • A virtual machine with a non-root sudo user. If you need a server, go here to create a DigitalOcean Droplet running your favorite Linux distribution. After creation, choose your distribution from this list and follow our Initial Server Setup Guide.
  • MySQLまたはMariaDBがインストールされていること。MySQLをインストールするには、当社のチュートリアル「MySQLのインストール方法」に従ってください。MariaDBをインストールするには、当社のチュートリアル「MariaDBのインストール方法」に従ってください。
  • A sample database created in your database server. To create one, follow “Creating a Sample Database” in our tutorial, “An Introduction to Queries in MySQL”.

注意: 手動インストールの代わりに、DigitalOcean Marketplace の MySQL One-Click Application を探索することができます。

ステップ1 — MySQL または MariaDB データベースのエクスポート

mysqldump コンソールユーティリティは、データベースを SQL テキストファイルにエクスポートします。これにより、データベースの移動や転送が容易になります。データベースの名前と、少なくともデータベースへの完全な読み取り専用アクセスを許可する権限を持つアカウントの資格情報が必要です。

mysqldump を使用してデータベースをエクスポートします:

  1. mysqldump -u username -p database_name > data-dump.sql
  • username はデータベースにログインできるユーザー名です。
  • database_name はエクスポートするデータベースの名前です。
  • data-dump.sql は、出力を格納する現在のディレクトリ内のファイルです。

コマンドは視覚的な出力を生成しませんが、data-dump.sql の内容を確認して、正当な SQL ダンプファイルであるかどうかを確認できます。

以下のコマンドを実行します:

  1. 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-00ubuntu0.16.04.1

エクスポートプロセス中にエラーが発生した場合、mysqldump はそれらを画面に表示します。

ステップ2 — MySQL または MariaDB データベースのインポート

既存のダンプファイルをMySQLまたはMariaDBにインポートするには、新しいデータベースを作成する必要があります。このデータベースにはインポートされたデータが格納されます。

まず、次のようにしてrootまたは新しいデータベースを作成する権限を持つ他のユーザーとしてMySQLにログインします:

  1. mysql -u root -p

このコマンドを実行すると、MySQLシェルプロンプトに移動します。次に、次のコマンドで新しいデータベースを作成します。この例では、新しいデータベースの名前はnew_databaseです:

  1. CREATE DATABASE new_database;

データベースの作成が確認されたメッセージが表示されます。

Output
Query OK, 1 row affected (0.00 sec)

その後、CTRL+Dを押してMySQLシェルを終了します。通常のコマンドラインから、次のコマンドでダンプファイルをインポートできます:

  1. mysql -u username -p new_database < data-dump.sql
  • usernameはデータベースにログインするためのユーザー名です
  • newdatabaseは新しく作成したデータベースの名前です
  • data-dump.sqlはインポートするデータダンプファイルで、現在のディレクトリにあります

コマンドが正常に実行された場合、出力はありません。プロセス中にエラーが発生した場合、mysqlは代わりにそれらを端末に出力します。インポートが成功したかどうかを確認するには、MySQLシェルにログインしてデータを検査します。USE new_databaseを使用して新しいデータベースを選択し、SHOW TABLES;または類似のコマンドを使用してデータを確認します。

結論

このチュートリアルでは、MySQLまたはMariaDBデータベースからデータベースダンプを作成しました。そのデータダンプを新しいデータベースにインポートしました。mysqldumpには、システムがデータダンプを作成する方法を変更するために使用できる追加の設定があります。詳細については、公式のmysqldumpドキュメントページを参照してください。

MySQLについて詳しく知るには、MySQLリソースページをご覧ください。

MySQLクエリについて詳しく学ぶには、当社のチュートリアル、「MySQLのクエリ入門」をご覧ください。

著者は、無料かつオープンソースファンドを、寄付のための執筆プログラムの一環として選択しました。

Source:
https://www.digitalocean.com/community/tutorials/how-to-import-and-export-databases-in-mysql-or-mariadb