Skip to main content

Mysqldumpとは何ですか?どうすれば使用できますか?

Anonim

自由に利用できる有力なデータベースの1つとして、MySQLはあらゆる種類のWebアプリケーションに人気があります。インターネットにさらされていると、もちろんあなたのアプリは悪意のある攻撃にさらされます。サーバーが侵害された場合は、アプリケーションを再インストールする必要があります。最悪の場合、データを完全に失う可能性があります。また、あるサーバーから別のサーバーにデータベースを移行する必要がある場合もあります。

mysqldumpは何のために使用されますか?

mysqldump ツールは、これらの状況の両方をカバーしています。基本的な機能は、MySQLデータベースを使ってテキストファイルとして "ダンプ"することです。しかし、テキストファイルだけでなく、ファイルは SQL文のセット。これらの文を実行すると、ダンプを実行したときの正確な状態にデータベースが再構築されます。

だからあなたは使うことができます mysqldump データベースのエクスポートを実行します。これらは、バックアップの目的でも、データベースを新しいホストに移動しているためでもかまいません。どちらの場合でも、あなたはある時点で インポート テキストファイルをMySQLデータベースサーバーに戻します。ファイル内のすべてのSQL文が実行され、DBが元の状態に再構築されます。この部分は実際には使用されません mysqldump コマンドを実行することはできませんが、このユーティリティがなければ不可能です。

MySQLのドキュメントには、バックアップを作成する他の方法が記載されていますが、これらにはそれぞれ独自の欠点があります。

  • MySQL EnterpriseからDBをコピーすることは、Enterpriseの値札を気にしない限り、これらのバックアップを達成するのに最適です。
  • DBのデータディレクトリをコピーすることは、オペレーティングシステム間を移動する場合、宛先が異なるため、扱いにくいことがあります。
  • 区切られたテキストファイルにエクスポートするとコンテンツが得られますが、構造を自分で再作成する必要があります。そしてあなたはそれをちょうど良いものにするのがよいでしょう…
  • MySQL WorkbenchのようなGUIプログラムからデータベースをバックアップすることができます。しかし、これは手動プロセスです。つまり、スクリプトやバッチジョブに含めることはできません。

mysqldumpツールのインストール

この記事に興味があるなら、既にMySQLをインストールしている可能性があります。その場合、良いニュース - あなたはすでに持っています mysqldump!そうでない場合は、オペレーティングシステムの標準的な方法でMySQLをインストールするだけです。

Windowsの場合は、Windows 7にMySQLをインストールする方法についてこちらの手順を確認してください(インストールプロセスはまだまだ同じです)。同様に、macOSについては、macOS 10.7にMySQLをインストールする方法を参照してください。 UbuntuベースのLinuxシステムのユーザは、次のコマンドを使用してMySQLクライアントとユーティリティをインストールできます。

sudo apt install mysql-client

MySQLダンプの抽出

インストールが完了したら、 mysqldump データベースの完全バックアップを取得します。

mysqldump -h あなたのDBホストの名前またはIP -u DBユーザの名前 -p データベース名> db_backup.sql

このコマンドを少し壊しましょう:

  • "-h":このフラグはデータベースです ホスト。完全なホスト名(例:myhost.domain.com)またはIPアドレスにすることができます。また、MySQLサーバと同じホスト上で実行している場合は、空白のままにすることもできます。
  • "-u":言われたように、これはあなたです ユーザー名.
  • "-p":あなたのMySQLインストールが適切に保護されている場合は、 パスワード 接続する。引数なしのこのフラグは、コマンドを実行するときにパスワードを要求します。場合によっては、バックアップスクリプトなどでこのフラグの引数としてパスワードを直接指定すると便利です。しかし、プロンプトでは、誰かがあなたのコンピュータへのアクセス権を得た場合、あなたはコマンド履歴でこのパスワードを得ることができるので、そうしてはいけません。
  • "> db_backup.sql":この最後の部分は、 mysqldump すべての出力をファイルに出力します。通常、コマンドはすべてをコンソールに直接出力します。つまり、一連のSQL文が飛ぶことがあります。しかし、代わりに、*> *記号は、これらすべてのものを名前付きテキストファイルに入れるための記号です。このファイルが存在しない場合、自動的に作成されます。

作業が終了したら、.SQLファイルが作成されます。これはSQL文を含むテキストファイルです。任意のテキストエディタで開いて内容を検査することができます。 WordPressデータベースからのエクスポートを見ると、これらのファイルがどのように組み合わされているかを見ることができます。

ファイルはセクションに分割されています。上記の画像では、最初のセクションがWordPressコメント用のテーブルを設定していることがわかります。次に、第2のセクションは、これらのテーブルにあったコンテンツ(すなわち、コメント・レコード)を再作成する。もう一度MySQLダンプを再インポートすると、コマンドはファイルを処理し、ステートメントを実行し、データベースを元どおりに再構築します。それではどうしますか?見てみましょう。

MySQLダンプファイルのインポート

これを行うには、まずデータベースを作成し、有効なユーザー名とパスワードが必要です。データベースのすべての権限も持っている必要があります。 (厳密に言えば、 付与 パーミッションはありますが、すべてを付与する方が簡単です)。この記事では、データベースパーミッションに関する詳細を見つけることができます。

データを再インポートするには、次の手順を実行します。

  1. MySQLサーバには、 mysql コマンド。
  2. タイプ データベース名を使用する プロンプトで、DBの適切な名前を置き換えます。
  3. 入る ソースファイル名以前に取ったダンプファイルの名前を置き換えてください。

作業が終了すると、SQL文が実行されていることを示す長いメッセージのリストが表示されます。エラーが発生していることに気をつけてください。しかし、正しい権限があれば、それは空のデータベースであるためうまくいくはずです。

プロセスが完了すると、元のデータベースの複製が作成されます。これを確認するには、別のダンプを実行して、2つの出力を比較します。まともなテキストエディタはあなたのためにこれを行うことができます、または下の画像に示されているような専用* diff *ツール:

右のスクロールバーの一番上と一番下に赤い線で表されるように、これらのファイルには2つの違いがあります。最初のものはデータベース名を含む行で、名前を違う名前にしているため、これは異なると思われます。最後の2番目は、ダンプファイルのタイムスタンプです。また、最初の後に2番目のデータベースを再作成したので、これとは異なることも期待しています。それ以外の場合、ファイルはまったく同じです。つまり、それらを生成したデータベースも同様です。