7

SSH アクセス権がない (FTP アクセス権しかない) サーバーに、かなり小さな MySQL データベース (Textpattern インストール) があります。必要に応じて、ライブ データベースをローカルの開発サーバーに定期的にダウンロードする必要があります。つまり、スクリプトを実行したり、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

4

6 に答える 6

5

データベースにリモートでアクセスできるため、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 を生成します。

かなり高速な小さなデータベースを使用します。

于 2008-09-02T14:33:01.977 に答える
2

これが私が使っているものです。これにより、データベースをローカルサーバーにアップロードするときに、ライブサーバーからデータベースがダンプされます。 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

これはbatファイルから実行できます。スケジュールされたタスクを使用できます。

于 2009-05-20T06:36:26.517 に答える
1

MySQLレプリケーションはオプションですか?常に複製したくない場合は、オンとオフを切り替えることもできます。

これはレプリケーションに関する良い記事でした。

于 2008-09-02T13:46:02.557 に答える
0

SELECT * FROM ...サーバー上のすべてのデータベースでを実行する(Ruby)スクリプトを作成してから、ローカルコピーでDROP DATABASE ...一連の新しいを実行します。クエリを実行して、データベースを動的に一覧表示INSERTできます。SHOW DATABASESこれは、テーブル構造が変更されないことを前提としていますが、テーブルの変更をサポートする場合は、各データベースの各テーブルにSHOW CREATE TABLE ...クエリと対応するステートメントを追加することもできます。CREATE TABLEデータベース内のすべてのテーブルのリストを取得するには、SHOW TABLESクエリを実行します。

スクリプトを入手したら、必要な回数だけ実行するようにスケジュールされたジョブとして設定できます。

于 2008-09-02T13:51:29.673 に答える
0

ライブ データをコピーする頻度と、それを行う必要がある速度に応じて、両方のマシンにphpMyAdminをインストールすることをお勧めします。DB をエクスポートおよびインポートできますが、手動で行う必要があります。それが小規模な DB であり (そのように聞こえます)、ライブ データをあまり頻繁にコピーする必要がない場合、必要なものにはうまく機能する可能性があります。

于 2008-09-02T14:26:46.547 に答える
0

@マーク・ビーク

MySQL レプリケーションはオプションですか? 常に複製したくない場合は、オンとオフを切り替えることもできます。

提案していただきありがとうございますが、サーバーでレプリケーションを有効にできません。これは、操作の余地がほとんどない共有サーバーです。これに注意するために質問を更新しました。

于 2008-09-02T14:03:46.040 に答える