PHP脚本将数据库从一台服务器复制到另一台服务器

时间:2019-10-22 14:07:51

标签: database ssh sshpass

我有一个场景,我需要每天将生产数据库复制到我的dev数据库。两者都是不同的服务器。我曾想过写一份可以完成任务的cronjob。我写了一个PHP脚本。我正在通过sshpass连接到远程生产服务器,进行转储,然后填充该转储。

exec("sshpass -p 'mypassword' ssh root@IP_ADDRESS:PORT");
exec("mysqldump -u root -p DB > production_dump.sql");
exec("mysql -u root -p test < production_dump.sql");

但是在第一行它会引发声明错误

ssh: Could not resolve hostname IP_ADDRESS:PORT: Name or service not known

我已经尝试在Internet上提供给定的解决方案,但是没有一个可以使用。可以请解释我在做什么错吗?

1 个答案:

答案 0 :(得分:2)

您的命令失败,因为它的格式不正确。您需要使用以下格式之一:

sshpass -p 'mypassword' ssh root@IP_ADDRESS PORT
sshpass -p 'mypassword' ssh root@IP_ADDRESS -p PORT
sshpass -p 'mypassword' ssh ssh://root@IP_ADDRESS:PORT

但是,我不确定脚本的其余部分是否可以正常工作,特别是如果它开始要求输入密码时。 bash脚本将是解决之道。