SSH を使用せずに、オンデマンドでライブ MySQL データベースをローカルのテスト データベースにダウンロードするにはどうすればよいですか?
-
09-06-2019 - |
質問
かなり小さな MySQL データベース (Textpattern インストール) がサーバー上にあり、SSH アクセスがありません (FTP アクセスのみがあります)。オンデマンドでライブ データベースをローカルの開発サーバーに定期的にダウンロードする必要があります。つまり、スクリプトを実行するか、cron ジョブを実行したいと考えています。これを行うにはどのような良い方法がありますか?
注意すべき点:
- ライブサーバーは Linux、Apache 2.2、PHP 5.2、および MySQL 4.1 を実行しています。
- ローカルサーバーは同じように実行されていますが(PHPの使用はオプションです)、OSはWindowsです
- ローカルサーバーにはRubyがインストールされています(したがって、Rubyを使用することは有効なオプションです)
- ライブ MySQL データベース できる 異なる IP からのリモート接続を受け入れる
- リモートサーバーでレプリケーションを有効にできません
アップデート: 私はBlaMの答えを受け入れました。美しくシンプルです。そんなこと考えもしなかったなんて信じられない。ただし、問題が 1 つありました。プロセスを自動化したいと考えていましたが、提案されたソリューションではユーザーにパスワードの入力を求められます。以下は、パスワードを渡す mysqldump コマンドのわずかに変更されたバージョンです。
mysqldump -u USER --password=MYPASSWORD DATABASE_TO_DUMP -h HOST > backup.sql
解決
データベースにリモートでアクセスできるため、Windows マシンから mysqldump を使用してリモート データベースを取得できます。コマンドラインから:
cd "into mysql directory"
mysqldump -u USERNAME -p -h YOUR_HOST_IP DATABASE_TO_MIRROR >c:\backup\database.sql
プログラムはデータベースのパスワードを要求し、Windows マシンで実行してデータを挿入できるファイル c:\backup\database.sql を生成します。
小規模なデータベースではかなり高速になるはずです。
他のヒント
これが私が使っているものです。これにより、ライブ サーバーからデータベースがダンプされ、ローカル サーバーにアップロードされます。mysqldump -hlive_server_addresss -ulive_server_user -plive_server_password --opt --compress live_server_db | mysql -ulocal_server_user -plocal_server_password local_server_db
これはから実行できます コウモリ ファイル。スケジュールされたタスクはいつでも使用できます。
MySQL レプリケーションはオプションですか?常に複製したくない場合は、オンとオフを切り替えることもできます。
これは 良い記事 レプリケーションについて。
(Ruby) スクリプトを作成して、 SELECT * FROM ...
サーバー上のすべてのデータベースに対して次の操作を実行します。 DROP DATABASE ...
続いて新しいシリーズが INSERT
ローカルコピー上にあります。できることは、 SHOW DATABASES
データベースを動的にリストするクエリ。ここでは、テーブル構造が変更されないことを前提としていますが、テーブルの変更もサポートしたい場合は、 SHOW CREATE TABLE ...
クエリと対応する CREATE TABLE
各データベースの各テーブルに対するステートメント。データベース内のすべてのテーブルのリストを取得するには、次のようにします。 SHOW TABLES
クエリ。
スクリプトを取得したら、それをスケジュールされたジョブとして設定し、必要なだけ実行できます。
@マーク・ビーク
MySQL レプリケーションはオプションですか?常に複製したくない場合は、オンとオフを切り替えることもできます。
ご提案ありがとうございます。しかし、サーバー上でレプリケーションを有効にすることができません。これは共有サーバーであり、操作の余地はほとんどありません。これに注意するために質問を更新しました。
ライブデータをコピーする必要がある頻度と、それを実行する必要がある速度に応じて、インストール phpMyAdmin 両方のマシンで使用することもオプションの場合があります。DB をエクスポートおよびインポートできますが、手動で行う必要があります。それが小規模な DB (実際にそうであるように思えます) で、ライブ データを頻繁にコピーする必要がない場合は、必要な用途にはうまく機能する可能性があります。