如果 slave 在 Symfony2 中不工作,自动连接到 MySQL master
Automatically connect to MySQL master if slave not working in Symfony2
我已经建立了一个工作正常的主从连接。它似乎从奴隶读取并写入主人。对于 MySQL 部分,我使用了 this guide。对主服务器所做的任何修改也会立即应用于从服务器。两个数据库都使用5.6版本。
doctrine:
dbal:
default_connection: default
connections:
default:
driver: pdo_mysql
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
slaves:
slave1:
host: "%sdatabase_host%"
port: "%sdatabase_port%"
dbname: "%sdatabase_name%"
user: "%sdatabase_user%"
password: "%sdatabase_password%"
但是,如果从服务器的 mysql 服务器已关闭(或配置错误),那么与主服务器建立连接是否有意义?在这种情况下,整个应用程序崩溃了,我觉得有点烦人。
我想知道如果从站不工作,是否有办法连接到主站。或者请告诉我这是否是一种不好的做法。
我相信这与使用 MasterSlaveConnection since that one seems to be used when slaves are configured for a dbal connection, otherwise Connection 有关。
我认为最舒适的选择是(在这种情况下)在 MySQL-slave 服务器之前设置一个 HAProxy 实例。然后在 Symfony 配置中指定 HAProxy 作为从服务器。如果代理检测到它(从属)关闭,它将透明地将整个连接传递到主服务器。
查看一些示例,了解如何使用我描述的行为设置 HAProxy:
我已经建立了一个工作正常的主从连接。它似乎从奴隶读取并写入主人。对于 MySQL 部分,我使用了 this guide。对主服务器所做的任何修改也会立即应用于从服务器。两个数据库都使用5.6版本。
doctrine:
dbal:
default_connection: default
connections:
default:
driver: pdo_mysql
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
slaves:
slave1:
host: "%sdatabase_host%"
port: "%sdatabase_port%"
dbname: "%sdatabase_name%"
user: "%sdatabase_user%"
password: "%sdatabase_password%"
但是,如果从服务器的 mysql 服务器已关闭(或配置错误),那么与主服务器建立连接是否有意义?在这种情况下,整个应用程序崩溃了,我觉得有点烦人。
我想知道如果从站不工作,是否有办法连接到主站。或者请告诉我这是否是一种不好的做法。
我相信这与使用 MasterSlaveConnection since that one seems to be used when slaves are configured for a dbal connection, otherwise Connection 有关。
我认为最舒适的选择是(在这种情况下)在 MySQL-slave 服务器之前设置一个 HAProxy 实例。然后在 Symfony 配置中指定 HAProxy 作为从服务器。如果代理检测到它(从属)关闭,它将透明地将整个连接传递到主服务器。
查看一些示例,了解如何使用我描述的行为设置 HAProxy: