如何在PHP中将数据库从一台服务器复制到另一台服务器?

时间:2010-06-04 08:14:07

标签: php mysql

我在本地服务器中有一个名为'empData'的数据库,我希望将该数据库中的所有数据复制到另一个数据库,该数据库位于另一个名为'empDataBackup'的服务器(Web服务器)中。 我试过这段代码mysql_query("INSERT INTO empData.backup_emp SELECT * FROM empData.emp"); 但它不起作用,因为两个数据库都不在同一个服务器中......(在我们的例子中,一个在本地,另一个在Web服务器中)。 请帮忙..

4 个答案:

答案 0 :(得分:2)

使用mysqldump转储数据,然后将该文件传输到mysql以将数据导入其他位置。

在server1上:

mysqldump empData > empData.sql

在server2上:

mysql < empData.sql

如果你想获得想象力,你可以使用管道和ssh直接从server1到server2传输数据。

答案 1 :(得分:1)

这不是PHP答案,但可能会让你开始:

mysqldump --host=db1.example.com --user=db1user --password=db1pass --single-transaction myschema mytable | \
    mysql --host=db2.example.com --user=db2user --password=db2pass myschema

如果您无法从一台计算机访问两台主机,则可以使用ssh,例如

ssh db1.example.com 'mysqldump --user=db1user --password=db1pass --single-transaction myschema mytable' | \
  mysql --user=db2user --password=db2pass myschema

mysqldump --user=db1user --password=db1pass --single-transaction myschema mytable | \
  ssh db2.example.com 'mysql --user=db2user --password=db2pass myschema'

答案 2 :(得分:1)

总是可以选择直接MySQL Replication,依靠PHP脚本来保持数据库同步

答案 3 :(得分:0)

您必须将数据库转储到原始服务器上,然后将其复制到另一台服务器,然后将其还原。

对于这些操作中的每一个,都有“服务器端”方式和“PHPside”方式。如果可以,请使用第一个。如果你不能使用第二个,但你需要特别注意安全性。

服务器端:1。和3:使用mysqldump。 2.使用scp传输文件。

PHP方面:1。使用脚本转储数据库,例如this one。 2.使用CURL复制文件,或将其放在可用目录中,以某种方式保护它。 3.从第二台服务器检索文件,然后通过mysql_exec运行它来恢复数据库。