Я встановив два сервери MySQL з реплікацією Master / Slave для бази даних drupal, і я підтвердив, що бази даних синхронізуються та реплікуються.
Зараз я намагаюся вказати drupal на обидві бази в основному для цілей відмови / надмірності. Тобто, якщо мені потрібно перезавантажити наш основний сервер баз даних, я не хочу, щоб наш сайт працював. (Перехід лише для читання є прийнятним під час невдач)
На підставі наступної статті . Я змінив settings.php
наступним чином:
$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',
);
Конфігурація нормальна, доки я не відключу майстер (сервіс mysqld stop) - коли я роблю, що мій сайт запускає:
PDOException: SQLSTATE [HY000] [2013] Втрачено з’єднання з сервером MySQL під час "читання початкового пакета зв'язку", системна помилка: 111 в drupal_is_denied () (рядок 1895 р. /Www/includes/bootstrap.inc). Додатковий
PDOException: SQLSTATE [HY000] [2013] Втрачено з’єднання з сервером MySQL під час "читання початкового пакета зв'язку", системна помилка: 111 у dblog_watchdog () (рядок 141 з /www/modules/dblog/dblog.module).
Яка хитрість зробити цю роботу?