MySQL ダンプリモートデータベース

Rashmi Patidar 2023年6月20日
  1. MySQL ダンプとは
  2. MySQL ダンプの異なる構文
  3. リモートサーバーからローカルマシンへの MySQL ダンプ
MySQL ダンプリモートデータベース

この記事では、MySQL リモートデータベースをダンプする方法を紹介します。

MySQL ダンプとは

MySQL ダンプは、SQL データベースと MySQL データベースパッケージを別のサーバーにバックアップするプロセスです。このプロセスは通常、ある場所からそのレプリカへのレコードのバックアップを保持するために発生します。

多くの場合、このプロセスはスケジュールされ、時間どおりに繰り返されます。MySQL は、特権を持つデータベースを再作成するための mysqldump ユーティリティをユーザーに提供します。

ユーティリティは、スキーマを再生成するためのすべての SQL ステートメントを含むフラットファイルをシステムに作成します。

ダンプが存在するサーバーは、必ずしも MySQL サーバーである必要はありません。DumpFile は、すべてのデータベースとスキーマを追跡するファイルです。

バックアップファイルを使用すると、データベーススキーマを別のインスタンスまたはサーバーで再作成できます。このファイルには、creatinginsert などの SQL ステートメントのセットが含まれており、同様のスキーマ階層(データベース->テーブル->ビュー->関数->レコード)を別の場所に再配置します。

ダンプのプロセスは、データベースのサイズに基づいて、通常 30 分以上かかります。

MySQL ダンプの前提条件は次のとおりです。

  1. ユーティリティを使用するには、データベース、関数、ビュー、トリガーへのすべてのアクセス権限が必要です。
  2. ダンプされたファイルは、新しいスキーマを再作成し、それらに対する操作を変更および挿入する必要があるため、特権を作成、変更、挿入する必要があります。

MySQL ダンプの異なる構文

すべてのデータベースの MySQL ダンプの構文:

mysqldump [options] --databases database_name ... > backupFileName.sql

テーブルの MySQL ダンプの構文:

mysqldump [options] database_name [table_name ...] > backupFileName.sql

MySQL ワークベンチの MySQL ダンプの構文:

mysqldump [options] --all-databases > backupFileName.sql

上記の構文は、データベース、テーブル、およびすべてのデータベースのダンプを形成します。その議論の説明は以下の通りです。

  1. キーワード mysqldump は常に先頭にある必要があります。これは、MySQL ステートメントがダンプを作成することであることを示しています。これは、SQL ダンプを作成する必要があることを示しています。
  2. キーワードの後に​​続くオプションは、ユーザーが必要に応じてオプションを追加/削除できることを示す必須ではない属性です。オプションの例は次のとおりです。
    2.1 コマンド -u root -p には、オプションリストのユーザー名とパスワードの属性を示すハイフン u およびハイフン p などのオプションがあります。root は MySQL で設定されたユーザー名であり、パスワードはユーザーが選択したものです。
  3. --databases キーワードを使用すると、ユーザーはバックアップを取るデータベースの名前に続けてデータベース名を指定できます。
  4. テーブルのダンプの場合、上記と同じ構文でデータベース名の後にテーブル名を指定します。
  5. ワークベンチ内のすべてのデータベースのバックアップを作成するには、ファイルに特定のデータベース名を指定せずに、--all-databases を直接渡します。
  6. > 記号は、最初のセクションの出力が、オペレーターの後に提供されるファイルに渡される必要があることを指定します。
  7. backupfileName.sql は、すべてのダンプを保持する必要があるファイル名です。ファイル名は相対パスであり、ファイルの絶対パスではありません。これにより、MySQL 開発者ワークベンチの bin フォルダーにバックアップファイルが作成されます。

リモートサーバーからローカルマシンへの MySQL ダンプ

リモートサーバーからローカルマシンへの MySQL ダンプのコマンドは次のとおりです。

クエリは、リモートサーバーに MYSQLdump がインストールされていない場合に機能します。そのシナリオでは、ローカルマシンからリモートサーバーにトンネルを作成してから、ローカルマシンにデータをダンプする必要があります。

LINUX 環境は、ssh で保護されたトンネルの前提条件です。ssh コマンドは同じように機能します。

ssh トンネルを作成するコマンドは次のとおりです。

ssh -f -L3310:localhost:3306 user@remote.server -N

ssh キーワードを使用すると、システムはリモートサーバーとの安全な暗号化接続を作成できます。このコマンドを使用すると、ユーザーはサーバーの詳細を知っている任意のリモートマシンと安全に接続できます。

ssh コマンドで利用できるさまざまなオプションがあります。

  1. -f オプションを使用すると、プロセスが実際に実行される前に、プロセスをバックグラウンドに移動できます。

  2. -L オプションは、ローカルまたはクライアントマシンポートがリモートホストおよびサーバーマシンポートに転送されることを指定します。

    上記のクエリでは、ポート 3310 はプロセスが開始されるリモートホストポートです。ポート 3306 はローカルホストサーバーのポートです。

  3. -N オプションは、ポートを安全に転送するために使用されます。コマンドは、ローカルサーバーとリモートサーバーの間にトンネルを作成することです。

mysqldump -P 3310 -h 127.0.0.1 -u mysql_user -p database_name table_name

mysqldump キーワードは、データベースダンプを作成するホストマシンを示します。安全な接続が確立されると、ダンプが形成されます。

  1. -P オプションは、リモートマシンが接続を確立するポートを指定します。上記の場合、ポートは 3310 です。
  2. -h オプションは、リモートサーバーのホスト名を示します。ここでは、トンネリングのプロセスを使用して接続が行われます。
  3. -u オプションは、次の引数がリモートサーバーへの安全な接続を確立するのに役立つユーザー名であることを示します。
  4. -p オプションは、リモートサーバーへの接続中に使用するパスワードを示します。

上記のステートメントで提供されるデータベース名とテーブル名は、リモートサーバーからローカルマシンにダンプされるテーブル名を示します。

著者: Rashmi Patidar
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

関連記事 - MySQL Dump