我正在尝试创建一个故障转移服务器,并且我已经成功地在主服务器和辅助服务器之间同步了文件,但是我遇到了数据库同步问题。
我正在使用以下指南“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
这里主库转储数据,直接导入副库。两个服务器中的数据库名称可以不同。我们需要设置一个不使用 cron 作业的解释的 ssh,并在标识符 (-i) 中识别 rsa 或 dsa key 的路径。希望这可以帮助这里有类似问题的人。 祝你好运。
最佳答案
只要您只同步包含您的应用程序的数据库,并且两台服务器上的数据库名称相同,那么您的 mysql 用户不同真的无关紧要。
如果您的应用程序的数据库名称在两台服务器上不同(我假设如果您使用 hostgator,则可能是这样,此答案提供了一些有用的信息:generating database with different name from mysqldump backup)
关于php - 具有不同用户名的两台服务器之间的故障转移 MYSQL 同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23988804/