2014-09-20 54 views
2

我連接兩個數據庫是在2個不同的服務器,例如如何在一臺服務器創建的表像從另一個表

$connection_from = new mysqli($databasehost_from,$databaseusername_from,$databasepassword_from,$databasename_from); 
$connection_to = new mysqli($databasehost_to,$databaseusername_to,$databasepassword_to,$databasename_to); 

現在我想創建表table2並插入第二個相同的數據表主機數據庫中,因爲它已經存在於第一個主機database.Can請人建議我做一個正確的way.I試圖像

CREATE TABLE connection_to.table2 AS SELECT * FROM connection_from.table1 

,但,但我沒有發現,表中甚至創造。

+0

即使您可以使用[聯合存儲引擎](https://dev.mysql.com/doc/refman/5.6/en/federated-storage-engine.html),您也必須發出兩個' CREATE TABLE'語句的新表。但是您可以通過INSERT INTO ... SELECT將您的數據導入第二個主機。 – VMai 2014-09-20 13:24:41

+0

可能可以從第一個連接中獲取數據並通過插入查詢將其存儲在第二個連接中 – 2014-09-20 13:26:40

+0

如果表保持不變只需要創建一次),使用phpMyAdmin導出表的CREATE語句,然後使用INSERT INTO ... SELECT ...語法。否則,你可以嘗試複製。 – 2014-09-20 13:29:27

回答

0

如果您嘗試複製數據庫,請不要使用PHP。 MySQL內置了複製。使用它。它執行差異而不是全部傳輸,因此速度更快。

如果你不能或不想使用複製,你應該看看在命令行中使用管道。如果數據庫增長到足夠大,那麼使用PHP進行傳輸會產生問題,因爲變量大小將超過PHP變量大小限制。您可以在命令行上使用system方法,並從一個數據庫執行讀取操作,並將其寫入另一個數據庫的寫入操作。這假定您正在使用Linux系統。如果你在Windows上......轉向Linux。

如果您定期執行此操作,您可能只需編寫一個腳本並設置一個cron任務來處理它。

相關問題