MySQL ダンプリモートデータベース
この記事では、MySQL リモートデータベースをダンプする方法を紹介します。
MySQL ダンプとは
MySQL ダンプは、SQL データベースと MySQL データベースパッケージを別のサーバーにバックアップするプロセスです。このプロセスは通常、ある場所からそのレプリカへのレコードのバックアップを保持するために発生します。
多くの場合、このプロセスはスケジュールされ、時間どおりに繰り返されます。MySQL は、特権を持つデータベースを再作成するための mysqldump
ユーティリティをユーザーに提供します。
ユーティリティは、スキーマを再生成するためのすべての SQL ステートメントを含むフラットファイルをシステムに作成します。
ダンプが存在するサーバーは、必ずしも MySQL サーバーである必要はありません。DumpFile
は、すべてのデータベースとスキーマを追跡するファイルです。
バックアップファイルを使用すると、データベーススキーマを別のインスタンスまたはサーバーで再作成できます。このファイルには、creating
や insert
などの SQL ステートメントのセットが含まれており、同様のスキーマ階層(データベース->テーブル->ビュー->関数->レコード)を別の場所に再配置します。
ダンプのプロセスは、データベースのサイズに基づいて、通常 30 分以上かかります。
MySQL ダンプの前提条件は次のとおりです。
- ユーティリティを使用するには、データベース、関数、ビュー、トリガーへのすべてのアクセス権限が必要です。
- ダンプされたファイルは、新しいスキーマを再作成し、それらに対する操作を変更および挿入する必要があるため、特権を作成、変更、挿入する必要があります。
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
上記の構文は、データベース、テーブル、およびすべてのデータベースのダンプを形成します。その議論の説明は以下の通りです。
- キーワード
mysqldump
は常に先頭にある必要があります。これは、MySQL ステートメントがダンプを作成することであることを示しています。これは、SQL ダンプを作成する必要があることを示しています。 - キーワードの後に続くオプションは、ユーザーが必要に応じてオプションを追加/削除できることを示す必須ではない属性です。オプションの例は次のとおりです。
2.1 コマンド-u root -p
には、オプションリストのユーザー名とパスワードの属性を示すハイフンu
およびハイフンp
などのオプションがあります。root
は MySQL で設定されたユーザー名であり、パスワードはユーザーが選択したものです。 --databases
キーワードを使用すると、ユーザーはバックアップを取るデータベースの名前に続けてデータベース名を指定できます。- テーブルのダンプの場合、上記と同じ構文でデータベース名の後にテーブル名を指定します。
- ワークベンチ内のすべてのデータベースのバックアップを作成するには、ファイルに特定のデータベース名を指定せずに、
--all-databases
を直接渡します。 >
記号は、最初のセクションの出力が、オペレーターの後に提供されるファイルに渡される必要があることを指定します。backupfileName.sql
は、すべてのダンプを保持する必要があるファイル名です。ファイル名は相対パスであり、ファイルの絶対パスではありません。これにより、MySQL 開発者ワークベンチの bin フォルダーにバックアップファイルが作成されます。
リモートサーバーからローカルマシンへの MySQL ダンプ
リモートサーバーからローカルマシンへの MySQL ダンプのコマンドは次のとおりです。
クエリは、リモートサーバーに MYSQLdump
がインストールされていない場合に機能します。そのシナリオでは、ローカルマシンからリモートサーバーにトンネルを作成してから、ローカルマシンにデータをダンプする必要があります。
LINUX 環境は、ssh で保護されたトンネルの前提条件です。ssh
コマンドは同じように機能します。
ssh トンネルを作成するコマンドは次のとおりです。
ssh -f -L3310:localhost:3306 user@remote.server -N
ssh
キーワードを使用すると、システムはリモートサーバーとの安全な暗号化接続を作成できます。このコマンドを使用すると、ユーザーはサーバーの詳細を知っている任意のリモートマシンと安全に接続できます。
ssh
コマンドで利用できるさまざまなオプションがあります。
-
-f
オプションを使用すると、プロセスが実際に実行される前に、プロセスをバックグラウンドに移動できます。 -
-L
オプションは、ローカルまたはクライアントマシンポートがリモートホストおよびサーバーマシンポートに転送されることを指定します。上記のクエリでは、ポート
3310
はプロセスが開始されるリモートホストポートです。ポート3306
はローカルホストサーバーのポートです。 -
-N
オプションは、ポートを安全に転送するために使用されます。コマンドは、ローカルサーバーとリモートサーバーの間にトンネルを作成することです。
mysqldump -P 3310 -h 127.0.0.1 -u mysql_user -p database_name table_name
mysqldump
キーワードは、データベースダンプを作成するホストマシンを示します。安全な接続が確立されると、ダンプが形成されます。
-P
オプションは、リモートマシンが接続を確立するポートを指定します。上記の場合、ポートは3310
です。-h
オプションは、リモートサーバーのホスト名を示します。ここでは、トンネリングのプロセスを使用して接続が行われます。-u
オプションは、次の引数がリモートサーバーへの安全な接続を確立するのに役立つユーザー名であることを示します。-p
オプションは、リモートサーバーへの接続中に使用するパスワードを示します。
上記のステートメントで提供されるデータベース名とテーブル名は、リモートサーバーからローカルマシンにダンプされるテーブル名を示します。
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