2016-12-18 81 views
0

我有一個localhost MySQL服務器(wamp),我有一個在線MySQL服務器。 的事情是,我想備份從在線服務器的表到我的本地服務器(複製現有的表之間的數據)。從在線sql服務器複製到本地服務器與php

我tryed使用mysqldump,但我沒有因此

<?php 
    exec("mysqldump --host=onlinehost --user=username --password=password dbname table \ 
    | mysql --host=localhost --user=root --password= dblocalname"); 
?> 
+1

,如果你有兩個MySQL或一個SQL服務器,我不明白。更新問題(和標籤)。 – Dekel

+0

即將移除混亂標籤 – Alexei

+0

爲什麼你想通過PHP來做到這一點? – Chris

回答

1

如果你從網上到本地MySQL服務器要帶備份,你必須打開一個端口,並從本地調制解調器定義一個靜態IP 。 (你可以從ISP修復你的IP)。

<?php 
$DBUSER="USERNAME"; 
$DBPASSWD="PASS"; 
$DATABASE="DBNAME"; 
$filename = "backup-" . date("d-m-Y") . ".sql.gz"; 
$mime = "application/x-gzip"; 

header("Content-Type: " . $mime); 
header('Content-Disposition: attachment; filename="' . $filename . '"'); 

$cmd = "mysqldump -u $DBUSER --password=$DBPASSWD $DATABASE | gzip --best"; 
passthru($cmd); 
echo ('Backup Complate !'); 
exit(0); 
?> 
  • 你可以採取DB的上下傾倒文件轉儲方式。例如上面的腳本,創建轉儲,並從Web瀏覽器自動下載:

  • 方式,您可以使用備份程序進行在線MySQL的本地數據庫。

  • 方式,您可以創建crons從在線數據庫中獲取備份到本地數據庫windows服務。

  • +1

    取而代之的是,創建一個您調用的存儲過程來完成此操作。不要將您的數據庫暴露給SQL注入。也就是說,如果這是硬編碼的代碼。 –

    +0

    @clifton_h你對,不同的解決方法,謝謝:) –

    相關問題