Я пытаюсь создать отказоустойчивый сервер и успешно синхронизировал файлы между первичным и вторичным серверами, но столкнулся с проблемой синхронизации базы данных.
Я использую следующее руководство '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, мы вынуждены использовать имя пользователя хоста в качестве префикса для имени базы данных. Во всяком случае, я считаю невозможным синхронизировать базу данных между этими двумя, поскольку вторичный сервер размещен на 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 [email protected] mysql -h localhost -u secondary_dbusername -pPassword_secondary_db secondary_dbname
Здесь первичная база данных сбрасывает данные, и они импортируются непосредственно во вторичную базу данных. Имена баз данных могут быть разными на обоих серверах. Нам нужно настроить ssh без перефразирования для использования задания cron и указать путь к ключу rsa или dsa в идентификаторе (-i). Надеюсь, это поможет кому-то здесь с подобной проблемой. Добрые пожелания.