4

我无法让 Drupal 7.7 使用 MySQL 从数据库。

我的 settings.php 如下:

$databases['default']['default'] = array(
  'driver' => 'mysql',
  'database' => 'my_db',
  'username' => 'dbuser',
  'password' => 'dbpw',
  'host' => 'db-ip-address'
);
$databases['default']['slave'][] = array(
  'driver' => 'mysql',
  'database' => 'my_db',
  'username' => 'dbuser',
  'password' => 'dbpw',
  'host' => '127.0.0.1'
);

复制本身运行良好。当我向站点添加新内容时,它会快速复制到从站上。

不过,看看 tcpdump,我从来没有看到对本地数据库的调用。

让 Drupal 使用从属服务器我还缺少什么吗?

4

3 回答 3

1

在 Drupal 核心中几乎没有使用从数据库。如果您正在开发自己的模块,那么对db_query的调用需要通过 $options 数组指定他们想要使用从数据库。有关如何设置此数组的信息,请参阅DatabaseConnection::defaultOptions 。

于 2011-08-23T18:30:13.707 回答
1

这个问题对同样的问题有一个非常好的答案: https ://drupal.stackexchange.com/questions/10806/how-to-get-core-to-leverage-a-mysql-master-slave-configuration

确实可以很容易地使大部分核心和贡献使用从服务器进行选择,而无需修补核心:)

于 2012-02-01T17:23:03.847 回答
0

AutoSlave模块将查询重定向SELECT只读复制数据库,考虑了复制滞后。

根据模块文档,它仅在满足以下所有条件时才使用只读副本:

  1. 该查询是一个选择查询
  2. 选择查询中的表在请求期间和假定的复制滞后内没有被写入
  3. 交易尚未开始
  4. 选择查询中的表未在驱动程序设置的“表”选项中指定
  5. 尚未启动锁(支持核心 db-lock 和 memcache-lock)
于 2012-12-13T16:47:57.033 回答