我已经为drupal数据库设置了两个具有主/从复制功能的MySQL服务器,并且我已经确认数据库是同步和复制的。
我现在正试图将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停止)之前,配置是正确的-当我这样做时,我的站点呕吐:
PDOException:SQLSTATE [HY000] [2013]在“读取初始通信数据包”时与MySQL服务器的连接断开,系统错误:drupal_is_denied()中的111(/www/includes/bootstrap.inc的1895行)。额外
PDOException:SQLSTATE [HY000] [2013]在“读取初始通信数据包”时与MySQL服务器的连接断开,系统错误:dblog_watchdog()中的111(/www/modules/dblog/dblog.module的第141行)。
使这项工作有效的诀窍是什么?