2015-06-12 70 views
1
//Assume Server 1 
$conn = mysql_connect("127.0.0.1","root",""); 

//Assume Server 2 
$conn1 = mysql_connect("127.0.0.1","root",""); 

//Server 1 database 
mysql_select_db("db1",$conn); 

//Server 2 database 
mysql_select_db("db2",$conn1); 

//Count number of rows from server 1 -> database -> table (tbl1) 
$cnt_rw=mysql_query("select count(*) from db1.tbl1"); 
$cnt_n=mysql_fetch_array($cnt_rw); 

//Fetch and update row one by one 
for($i=0;$i<($cnt_n['count(*)']);$i++) 
{ 
    $one_row=mysql_query("select * from db1.tbl1 limit $i,1"); 
    while($one_val=mysql_fetch_array($one_row)) 
    { 
     $one=$one_val['one']; 
     $two=$one_val['two']; 
     $three=$one_val['three']; 
    } 

    //Already exist means update else insert so am using replace query 
    mysql_query("REPLACE INTO db2.tbl2(one,two,three)values('".$one."','".$two."','".$three."')"); 
    $one=$two=$three=''; 
} 

此PHP代碼工作正常,但需要很長的加載時間。所以我想要一個簡單的查詢或PHP/MySQL代碼或任何想法從聯機服務器獲取備份到脫機服務器。如何使用PHP與MySQL從在線服務器到離線服務器的數據庫備份

在線和離線數據庫字段相同。

回答

0

由於使用PHP可能不是最好的主意,如果您有大量數據,您也可以使用命令行工具(如mysqldump)獲取數據的副本並使用mysql cli命令將其放到本地計算機上。

另一個選項可能是專門的工具,如sqlyog,它們可以幫助您將數據從一臺服務器遷移到另一臺服務器。

+0

無法理解,請給出任何使用PHP/MySQL的例子。 – Raj

+0

你可以使用:'mysqldump -h LIVEHOST -u USERNAME -p DATABASE TABLE> dump.sql'然後在本地機器上重新導入它'mysql -h LOCALHOST -u USERNAME -p DATABASE Olli

0

常見管理解決方案是有cron的腳本dumps整個分貝文件,該文件(最好壓縮BZ2),然後通過FTP,SFTP,rsync將備份服務器上傳。

+0

無法理解,請給任何使用PHP/MySQL的例子。 – Raj

+0

這不是php的解決方案。它是操作系統解決方案。 – venca

+0

'mysql --host = localhost --user = myname --password = mypass mydb mysql -h localhost -u myname -pmypass mydb' 這是cmd的提示方式。你問這個問題嗎? – Raj

相關問題