database - 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
我已经尝试在互联网上给出解决方案,但没有一个有效。任何人都可以解释我做错了什么吗?
解决方案
您的命令失败,因为它的格式不正确。您需要使用以下格式之一:
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脚本将是要走的路。
推荐阅读
- python - Mlxtend:带有 ColumnTransformer 的 SequentialFeatureSelector 给出 AttributeError
- linux - 用我自己的 .config 文件编译上游内核
- dart - Intellij IDEA 自定义飞镖格式。如何在同一行上制作点运算符
- string - 如何添加到列表中的字符串?(从亚马逊上刮掉链接)
- bash - 如何使用 plutil 将数据替换为 .plist 文件
- json - 如何禁用单击列表视图中的特定项目
- javascript - Vue - 如何使用一个插件两次但设置不同?
- reporting-services - SSRS 中的求和字段
- python-3.x - 如何一次声明重复的文件名和路径?
- python - 如何在 django db 中传递 if else 语句以在 django 中获取模型