【发布时间】:2020-03-18 07:59:40
【问题描述】:
我想将数据库从一台服务器复制到另一台服务器(德国和中国),因为它们都是由两个不同的服务提供商托管的服务器,我不能只是复制它们,因为它们不允许我更改配置文件服务器。我得出的结论是,我需要在我的位置设置第三台服务器,然后我可以将数据复制到另一台服务器,因此我在德国有一个“主”,在中国有一个“从”,在我的有一个“信使”地点。所有命令必须由 bash 脚本在“信使”上执行。该脚本工作正常,直到文件应该被发送到那里的数据库中它给了我文件不存在但它存在的错误。
mysqldump -h [host] -u [user] -p[mysqlpassword] databasename > filename.sql
sshpass -p [mypassword] ssh [ChineseServerIp] -l [user] sshpass -p [mypassword] scp user@GermanServerIP:filename.sql /home
sshpass -p [mypassword] ssh [ChineseServerIP] -l [user] mysql -u [mysqlUser] -p[mysqlpassword] Databese < /home/filename.sql
我不能只是将文件从“信使”服务器复制到中文服务器中,因为“伟大的中国防火墙”需要很长时间(我 gzip .sql 文件,然后在它打开时传输它中文的我解压上传)。
【问题讨论】:
-
这是一次性的还是应该通过脚本定期执行?
-
它应该通过脚本定期执行。
-
您是否尝试过直接在终端中执行这些命令,而不是通过脚本?
-
是的,我这样做了,但它也给了我同样的错误,即字典不存在。