MySQLでエクスポートまたはインポートするには、サーバーにログインすることから始めます。できればsudoを使用してログインします。 (ルート)アクセス。
MySQLからのエクスポート
MySQLデータベースをテキストファイルにエクスポートするための最適なツールは、mysqldumpです。 。
mysqldumpを使用するには 、適切なMySQL userのログイン資格情報を知っている必要があります 問題のデータベースをエクスポートするために必要な権限があります。
その情報を手に入れて、mysqldumpを入力します 適切なフラグとオプションを使用したコマンド:
$ mysqldump -u my_username -p database_name > output_file_path
使用されているオプションは次のとおりです。
-
-uフラグは、MySQLのusername続きます。 -
-pフラグは、passwordの入力を求めるプロンプトが表示されることを示します 上記のusernameに関連付けられています 。 -
database_nameもちろん、エクスポートするデータベースの正確な名前です。 -
>symbolは、STDOUTのUnixディレクティブです。 、これにより、Unixコマンドは発行されたコマンドのテキスト結果を別の場所に出力できます。この場合、その出力場所はoutput_file_pathで指定されたファイルパスです。 。
注:通常、output_file_pathの完全修飾パスとファイル名を入力することをお勧めします。 、したがって、結果のファイルは必要な場所に正確に生成されます。
たとえば、booksをエクスポートするには book_adminとしてのデータベース ~/backup/databaseへのユーザー ディレクトリの場合、次のコマンドを使用できます:
$ mysqldump -u book_admin -p books > ~/backup/database/books.sql
Enter password:
上記のプロンプトが表示されたらパスワードを入力した後、このコマンドは.sqlを使用してバックアップファイルを作成します 適切なディレクトリのサフィックス(完全にオプションですが、お勧めします)。
デフォルトでは、mysqldump しません 実際のデータベースの存在を変更しようとする保存コマンド。代わりに、デフォルトでは、実際のtablesのみ (およびそれぞれのデータ)が保存されるため、このファイルを使用して後でインポートできるように準備されます。もう1つのデータベースをエクスポート(および後で再作成)する機能が必要な場合は、--databasesを読んでください。 公式ドキュメントのフラグ。
MySQLデータベースのバックアップをエクスポートする方法を学習したので、プロセスを逆にしてインポートする方法について説明します。 既存のデータベースへのバックアップ。
ご想像のとおり、mysqldumpを補完するために エクスポートに使用されるコマンドには、同様のmysqlimportがあります。 インポートするためのコマンド。
ほとんどの場合、インポートは実質的に同一を渡すだけの問題です。 mysqlimportのオプション 指図。保存したbooks.sqlをインポートするには 以前に作成したファイルでは、同じフラグとほとんど同じ構文を使用します。
$ mysqlimport -u book_admin -p books_production ~/backup/database/books.sql
Enter password:
以前と同様に、-u および-p 認証にはフラグが必要です。その後にdatabaseの名前が続きます。 にインポートし(この場合、別の本番データベースを使用しています)、最後に、インポートデータを含むSQLダンプファイルへの完全修飾パスを指定します。~/backup/database/books.sql 。 mysqlimportも注目に値します <は必要ありません または> (STDIN / STDOUT)mysqldumpで使用されたシンボル 。
これで、既存のデータベースをエクスポート/バックアップする方法と、そのデータを同じデータベースまたは別のデータベースにインポート/復元する方法の両方を学習しました。