我正在尝试创建故障转移服务器,并且我已成功同步主服务器和辅助服务器之间的文件,但我遇到了数据库同步问题。
我使用以下指南“http://www.howto-expert.com/how-to-create-a-server-failover-solution/”来创建数据库同步,我尝试过:
mysqldump --host=1.2.3.4 --user=MYDBUSER -pMYDBPASSWORD --add-drop-table --no-create-db --skip-lock-tables MYDBNAME | mysql --user=MYDBUSER -pMYDBPASSWORD MYDBNAME
实现它。现在针对这个问题,主服务器和辅助服务器具有不同的数据库用户名&因为这两个服务器中的数据库名称不能与cpanel中的数据库名称相同,我们不得不使用主机用户名作为dbname的前缀。无论如何,我发现无法在这两者之间同步数据库,顺便说一下,辅助服务器由hostgator托管,我认为他们不会分配与我的主服务器匹配的用户名。
是否有任何解决方法可以同步具有不同用户名的两个不同服务器中的数据库?任何参考链接,以实现我想要的? 提前谢谢!
更新: 我找到了解决这个问题的方法。在进行必要的更改后,在ssh中运行以下行。
mysqldump --host=123.345.456 --user=primary_dbusername -pPassword_primary_db --add-drop-table --no-create-db --skip-lock-tables primary_dbname | ssh -i /home/primary_server_username/shell/id_rsa_primary -p 22 secondary_username@103.403.503 mysql -h localhost -u secondary_dbusername -pPassword_secondary_db secondary_dbname
此处主数据库转储数据,并将其直接导入辅助数据库。两个服务器中的数据库名称可以不同。我们需要设置一个没有释义的ssh来使用cron job并在标识符(-i)中标识rsa或dsa键的路径。希望这可以帮助有类似问题的人。 祝福。
答案 0 :(得分:0)
只要您同步包含应用程序的数据库并且两台服务器上的数据库名称相同,那么您的mysql用户就不一样了。
如果您的应用程序的数据库名称在两台服务器上都不同(我假设您可能使用hostgator,则此答案提供了一些有用的信息:generating database with different name from mysqldump backup)