PHP 将数据库从一台服务器复制到另一台服务器的脚本
PHP Script to copy database from one server to another
我有一个场景,我需要每天将生产数据库复制到我的开发数据库。两者是不同的服务器。我想到的是编写一个可以完成这些工作的 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
我已经尝试过互联网上给定的解决方案,但没有一个有效。任何人都可以解释我做错了什么吗?
您的命令失败,因为它的格式不正确。您需要使用以下格式之一:
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 脚本将是可行的方法。
我有一个场景,我需要每天将生产数据库复制到我的开发数据库。两者是不同的服务器。我想到的是编写一个可以完成这些工作的 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
我已经尝试过互联网上给定的解决方案,但没有一个有效。任何人都可以解释我做错了什么吗?
您的命令失败,因为它的格式不正确。您需要使用以下格式之一:
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 脚本将是可行的方法。