首页 > 解决方案 > PHP脚本将数据库从一台服务器复制到另一台服务器

问题描述

我有一个场景,我需要每天将生产数据库复制到我的开发数据库。两者都是不同的服务器。我想过写一个可以做这些事情的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

我已经尝试在互联网上给出解决方案,但没有一个有效。任何人都可以解释我做错了什么吗?

标签: databasesshsshpass

解决方案


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

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脚本将是要走的路。


推荐阅读