SSH を使用せずに、オンデマンドでライブ MySQL データベースをローカルのテスト データベースにダウンロードするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/39536

質問

かなり小さな 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 (実際にそうであるように思えます) で、ライブ データを頻繁にコピーする必要がない場合は、必要な用途にはうまく機能する可能性があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top