Configurei dois servidores MySQL com replicação Master / Slave para o banco de dados drupal e confirmei que os bancos de dados estão sincronizados e replicados.
Agora estou tentando apontar drupal para os dois bancos de dados basicamente para fins de failover / redundância. Ou seja, se eu precisar reiniciar nosso servidor de banco de dados primário, não quero que nosso site seja desativado. (Somente leitura é aceitável durante cenários de falha)
Com base no seguinte artigo . Eu modifiquei da settings.php
seguinte maneira:
$databases['default']['default'] = array(
'driver' => 'mysql',
'database' => 'sdrupal',
'username' => 'drupal',
'password' => 'topsecret',
'host' => 'masterdb.ptp.local',
);
$databases['default']['slave'][] = array(
'driver' => 'mysql',
'database' => 'sdrupal',
'username' => 'drupal',
'password' => 'topsecret',
'host' => 'slavedb.ptp.local',
);
A configuração está boa até eu desligar o master (service mysqld stop) - quando faço isso, meu site vomita:
PDOException: SQLSTATE [HY000] [2013] Perdeu a conexão com o servidor MySQL ao 'ler o pacote de comunicação inicial', erro do sistema: 111 em drupal_is_denied () (linha 1895 de /www/includes/bootstrap.inc). Adicional
PDOException: SQLSTATE [HY000] [2013] Conexão perdida com o servidor MySQL ao 'ler o pacote de comunicação inicial', erro do sistema: 111 em dblog_watchdog () (linha 141 de /www/modules/dblog/dblog.module).
Qual é o truque para fazer isso funcionar?