使用MySQL主/从在Drupal 8平衡

问题描述 投票:2回答:1

我希望我的Drupal8安装在数据库失败的情况下更可靠,所以我想能在MySQL主/从复制,并使其与Drupal的8个工作。

我设置好的最多两个MySQL服务器(一个主,一个从属),和复制正在工作。

现在,我想设置Drupal的选择查询平衡的奴隶,和INSERT / UPDATE / DELETE查询到主机。它会平衡负载两个服务器之间,我将与它(痘痘)HA概念。

为了测试这个架构,我安装了一个全新的Drupal 8例如,没有自定义模块可言。只有纯香草的Drupal 8如果可能的话。

我改变的settings.php文件如下:

$databases['default']['default'] = array (
   'database'=>'drupaldb',
   'username'=>'masteruser',
   'host'=>'database-master.com'
   ...
);
$databases['default']['slave'] = array (
   'database'=>'drupaldb',
   'username'=>'slaveuser',
   'host'=>'database-slave.com'
   ...
);

“slaveuser”是具有只读访问MySQL用户; “masteruser”对数据库的访问RW。

有了这个设置,应用程序工作正常,但是当我看从指标,没有连接。甚至当我重装前端的页面。

如果我关掉主,或者如果我更改主设置,在配置PHP文件(密码错误,错误的数据库),我所期望的应用,前端页面,使用从设置。但头版是错误的:“该网站遇到意外错误,请稍后再试。”错误日志表明SQL连接失败。

我在这里看到的,是没有办法来平衡查询到主机(用于写)和从站(用于读取)。我预计Drupal8没有任何额外的插件来管理这一点。

我一定要使用mysql_nd_ms PHP扩展做的M / S平衡?

mysql amazon-rds drupal-8 database-replication
1个回答
2
投票

为副本数据库配置的语法可以settings.php找到

https://api.drupal.org/api/drupal/sites%21default%21default.settings.php/8.7.x

默认数据库副本的语法是:

// $info_array is the db connection details
$databases['default']['replica'][] = $info_array;

注:D8采用replicaslave的术语。


0
投票

注:到目前为止,我可以告诉大家,加入“复制”服务器做什么,除非你使用的是DB_ *功能调用(这是不建议使用),或者如果你手动实例在任何您的自定义查询database.replica连接如/** @var \Drupal\Core\Database\Connection $database_replica */ $database_replica = \Drupal::service('database.replica'); $query = $database_replica->select('node', 'n');....

© www.soinside.com 2019 - 2024. All rights reserved.