システム管理者のための必須ツール:SSHとmysqldumpによるリモートMySQLデータベース管理
SSH経由でmysqldumpを行う方法
mysqldumpは、MySQLデータベースのバックアップを作成するためのツールです。SSHは、リモートコンピュータに安全に接続するためのプロトコルです。この2つのツールを組み合わせることで、リモートMySQLデータベースのバックアップをローカルコンピュータに安全に取得することができます。
手順
- SSHトンネルを作成する
リモートコンピュータへのSSHトンネルを作成する必要があります。これにより、ローカルコンピュータとリモートMySQLデータベースサーバー間で安全な接続が確立されます。
ssh -L 3306:remote_host:3306 remote_username@remote_host
上記のコマンドは、次のことを行います。
ssh
: SSHクライアントを起動します。-L 3306:remote_host:3306
: ローカルポート3306をリモートホストのポート3306に転送します。これは、mysqldumpがリモートMySQLデータベースサーバーに接続するために使用します。remote_username@remote_host
: リモートコンピュータへの接続に使用するユーザー名とホスト名を指定します。
補足:
- 上記のコマンドを実行するには、リモートコンピュータへのSSHアクセス権を持っている必要があります。
- デフォルトのSSHポートは22ですが、異なるポートを使用している場合は、コマンドに
-p
オプションを追加して指定する必要があります。
- mysqldumpを実行する
SSHトンネルが作成されたら、mysqldumpを使用してリモートMySQLデータベースのバックアップを作成できます。
mysqldump -u username -p -h localhost database_name > backup.sql
mysqldump
: mysqldumpツールを起動します。-u username
: MySQLデータベースサーバーへの接続に使用するユーザー名を指定します。-p
: パスワードのプロンプトを表示します。-h localhost
: SSHトンネル経由で接続するリモートMySQLデータベースサーバーのホスト名を指定します。これは、localhost
に設定する必要があります。database_name
: バックアップを作成するデータベースの名前を指定します。> backup.sql
: バックアップの出力先ファイル名を指定します。
- 上記のコマンドを実行する前に、SSHトンネルが確立されていることを確認してください。
バックアップが完了したら、SSHトンネルを閉じることができます。
exit
- SSHトンネルを閉じると、リモートMySQLデータベースサーバーへの接続が切断されます。
利点
- SSH経由でmysqldumpを使用する利点は次のとおりです。
- 安全: SSHは、リモートコンピュータへの安全な接続を確立するための暗号化プロトコルです。これにより、データベースのバックアップが傍受または改ざんされるリスクを軽減できます。
- リモートアクセス: ローカルコンピュータからリモートMySQLデータベースのバックアップを作成できます。これは、データベースがファイアウォール后面に配置されている場合や、ローカルコンピュータから直接アクセスできない場合に役立ちます。
注意点
- SSHキー: SSHトンネルを作成するには、リモートコンピュータへのSSHキーが必要です。SSHキーの使用方法については、SSHに関するドキュメントを参照してください。
- ファイアウォール: ファイアウォールがSSHトラフィックをブロックしていないことを確認する必要があります。デフォルトのSSHポートは22ですが、異なるポートを使用している場合は、ファイアウォール設定で許可する必要があります。
代替手段
SSH経由でmysqldumpを使用する代わりに、次の代替手段を使用することもできます。
- リモートMySQLクライアント: リモートMySQLデータベースサーバーに直接接続できるリモートMySQLクライアントを使用することができます。多くのグラフィカルMySQLクライアントツールには、この機能が組み込まれています。
- バックアップツール: データベースのバックアップを自動化できるバックアップツールを使用することができます。多くの商用およびオープンソースのバックアップツールが利用可能です。
SSH経由でmysqldumpを使用することは、リモートMySQLデータベースの安全なバックアップを作成するための優れた方法です。ただし、SSHキーやファイアウォール設定など、使用する前に考慮すべき点がいくつかあります。
ssh -L 3306:remote_host:3306 remote_username@remote_host
mysqldump -u username -p -h localhost database_name > backup.sql
exit
- 上記のコード例は、デフォルトのSSHポート(22)とデフォルトのMySQLポート(3306)を使用しています。異なるポートを使用している場合は、コードを修正する必要があります。
remote_username
、remote_host
、username
、database_name
は、実際の値に置き換えてください。- パスワードを入力する際は、プロンプトが表示されるまで待機してください。パスワードは画面に表示されません。
例
次のコマンドは、mydatabase
という名前のデータベースのバックアップを backup.sql
というファイルに作成します。
ssh -L 3306:db.example.com:3306 [email protected]
mysqldump -u myuser -p -h localhost mydatabase > backup.sql
exit
注意事項
- 上記のコード例は、説明のみを目的としています。本番環境で使用する場合には、適切なセキュリティ対策を講じてください。
- データベースのバックアップを作成する前に、必ず最新の状態にバックアップされていることを確認してください。
SSH 以外でリモート MySQL データベースのバックアップを作成する方法
mysqldump は、MySQL の公式バックアップツールです。リモートホストに直接接続してバックアップを作成できます。
mysqldump --host=remote_host --user=username --password=password --database=database_name > backup.sql
phpMyAdmin は、Web ブラウザベースの MySQL 管理ツールです。バックアップの作成、復元、その他の管理タスクを実行するために使用できます。
- phpMyAdmin に Web ブラウザでアクセスします。
- バックアップしたいデータベースを選択します。
- 「エクスポート」タブをクリックします。
- 「クイック」エクスポート方法を選択します。
- 「SQL形式」オプションを選択します。
- 「すべてのオブジェクトを含める」オプションを選択します。
- 「実行」ボタンをクリックします。
phpMyAdmin は、ブラウザにダウンロードする SQL ファイルとしてバックアップを作成します。
商用バックアップツールを使用する
MySQL のバックアップと復元を専門とする商用ツールもいくつかあります。これらのツールは、多くの場合、追加機能を提供します。
- スケジュールされたバックアップ
- 暗号化されたバックアップ
- クラウドストレージへのバックアップ
- 増分バックアップ
- ポイントインタイムリカバリ
クラウドサービスを使用する
Amazon Relational Database Service (RDS) や Google Cloud SQL などのクラウドサービスは、データベースのバックアップと復元を自動的に行うことができます。
最適な方法の選択
リモート MySQL データベースのバックアップを作成する方法を決定する際には、次の要素を考慮する必要があります。
- 必要性: バックアップの頻度とスケジュール
- セキュリティ: バックアップのセキュリティ要件
- 機能: 必要な追加機能 (暗号化、圧縮など)
- 使いやすさ: ツールの使いやすさ
- コスト: ツールの無料版または有料版
SSH は、リモート MySQL データベースのバックアップを作成する方法の 1 つですが、唯一の方法ではありません。上記のオプションを検討して、ニーズに合った最適な方法を選択してください。
mysql ssh mariadb