![](/img/trans.png)
[英]How to copy database tables and each record from one database server to another database server in PHP MYSQL ?>
[英]Copy a mysql database from one server to another PHP cron Job automated
好吧,首先這不是備份工作,我知道使用phpmyadmin等。
我所擁有的是一台實時服務器和一台TEST服務器,People在實時服務器上工作,並不斷對其進行修改。 我希望每天晚上將LIVE服務器上的數據庫復制到TEST服務器。
有沒有人有一個PHP腳本,我可以運行該腳本來復制整個內容(或至少復制特定的表)? 我對使用命令行不太有把握,所以如果有一種方法可以執行一些非常具體的說明,請執行:P
我已經挖了周圍,但每個人似乎都建議手動或使用第三方工具來做。
任何幫助,不勝感激。
您可以執行以下操作:
在您的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.
刪除測試表-
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;
?>
您可以根據需要添加其他表,但是在我的示例中,它將創建一個名為testdata的表,該表將鏡像名為livedata的表。
然后設置一個cron作業以在需要時觸發腳本-
php /path/to/script.php
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.