Ich habe zwei MySQL-Server mit Master / Slave-Replikation für die Drupal-Datenbank eingerichtet und bestätigt, dass die Datenbanken synchronisiert und repliziert sind.
Ich versuche jetzt, Drupal hauptsächlich für Failover- / Redundanzzwecke auf beide Datenbanken zu verweisen. Wenn ich unseren primären Datenbankserver neu starten muss, möchte ich nicht, dass unsere Site ausfällt. (In Fehlerszenarien ist es akzeptabel, schreibgeschützt zu sein.)
Basierend auf dem folgenden Artikel . Ich habe settings.php
wie folgt geändert :
$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',
);
Die Konfiguration ist in Ordnung, bis ich den Master herunterfahre (Service mysqld stop) - wenn ich das tue, kotzt meine Site:
PDOException: SQLSTATE [HY000] [2013] Verbindung zum MySQL-Server beim Lesen des ersten Kommunikationspakets unterbrochen, Systemfehler: 111 in drupal_is_denied () (Zeile 1895 von /www/includes/bootstrap.inc). Zusätzlich
PDOException: SQLSTATE [HY000] [2013] Verbindung zum MySQL-Server beim Lesen des ersten Kommunikationspakets unterbrochen, Systemfehler: 111 in dblog_watchdog () (Zeile 141 von /www/modules/dblog/dblog.module).
Was ist der Trick, um diese Arbeit zu machen?