J'ai installé deux serveurs MySQL avec réplication maître / esclave pour la base de données drupal et j'ai confirmé que les bases de données sont synchronisées et répliquées.
J'essaie maintenant de pointer Drupal vers les deux bases de données essentiellement à des fins de basculement / redondance. C'est-à-dire que si je dois redémarrer notre serveur de base de données principal, je ne veux pas que notre site tombe en panne. (La lecture seule est acceptable pendant les scénarios d'échec)
Basé sur l' article suivant . J'ai modifié settings.php
comme suit:
$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',
);
La configuration est correcte jusqu'à ce que j'arrête le maître (service mysqld stop) - quand je fais ça, mon site vomit:
PDOException: SQLSTATE [HY000] [2013] Connexion perdue au serveur MySQL lors de la «lecture du paquet de communication initial», erreur système: 111 dans drupal_is_denied () (ligne 1895 de /www/includes/bootstrap.inc). Additionnel
PDOException: SQLSTATE [HY000] [2013] Connexion perdue au serveur MySQL lors de la «lecture du paquet de communication initial», erreur système: 111 dans dblog_watchdog () (ligne 141 de /www/modules/dblog/dblog.module).
Quelle est l'astuce pour que cela fonctionne?