0

まず、これはバックアップ ジョブではありません。phpmyadmin などの使用については知っています。

私が持っているのはライブサーバーとテストサーバーです。人々はライブサーバーで作業し、常に変更しています。LIVE サーバー上のデータベースを毎晩 TEST サーバーにコピーしたいと考えています。

全体(または少なくとも特定のテーブル)をコピーするために実行できるphpスクリプトを誰かが持っていますか?私はコマンドラインの使用にそれほど自信がないので、その方法でそれを行う方法があれば、かなり具体的な指示で行うことができます:P

私は掘り下げましたが、手動またはサードパーティのツールを使用して行うことを誰もが提案しているようです。

どんな助けでも大歓迎です。

4

2 に答える 2

3

次のようなことができます。

mysql ホスト マシンで:

1- Create a .sh file
2- Inside of this sh, put:
 - mysqldump -u myuser -p mypass mydatabasename > mydumpfile.sql
 - scp mydumfile.sql user@remote_host:remote_dir
3- Add that sh to a cron Job, to a daily execute
   (or something that meets your requeriments)

リモートマシンで:

1- One sh script that look for a file(mysqldumpfile.sql) in the specific dir
2- This line : mysql -u remotemysqluser -p remotemysqlpass database < mydumpfile.sql
3- rm mydumpfile.sql
4- Add this sh on a daily cron 1 or two hours past the host cron.
于 2013-08-07T16:34:28.223 に答える
0

テスト テーブルを削除します -

DROP TABLE testdata;

そして、それらをライブテーブルのコピーとして再作成します-

CREATE TABLE testdata LIKE livedata;
INSERT INTO testdata SELECT * FROM livedata;

これは、次のようにPHPを介して実行できます-

<?php

$host = '127.0.0.1';
$dbname = 'database'
$user = 'user';
$pass = 'pass';

try {  

  $DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);  

}

catch(PDOException $e) { 

    echo $e->getMessage(); 

}

$STH = $DBH->('DROP TABLE testdata');
$STH->execute();

$STH = $DBH->('CREATE TABLE testdata LIKE livedata');
$STH->execute();

$STH = $DBH->('INSERT INTO testdata SELECT * FROM livedata');
$STH->execute();

$DBH = null;

?>

必要に応じて追加のテーブルを追加できますが、私の例では、livedata というテーブルをミラーリングする testdata というテーブルが作成されます。

次に、必要に応じてスクリプトを起動する cron ジョブを設定します。

php /path/to/script.php
于 2013-08-07T16:30:17.457 に答える