我设置了一个MySQL从属并将必要的代码添加到/app/etc/local.xml:
<default_read>
<connection>
<host><![CDATA[host]]></host>
<username><![CDATA[useronslave]]></username>
<password><![CDATA[secret]]></password>
<dbname><![CDATA[dbname]]></dbname>
<active>1</active>
</connection>
</default_read>
问题是,从机似乎从未用于请求(使用mysql监控)
拍拍
我想你可以尝试这个设置
您必须使用从属数据库进行读取(选择查询)操作,使用主数据库进行写入(插入和更新查询)。 在magento的以下配置文件中进行更改: 应用程序/etc/local.xml
<default_setup>
<connection>
<host><![CDATA[Master-host]]></host>
<username><![CDATA[user]]></username>
<password><![CDATA[pass]]></password>
<dbname><![CDATA[magentodb]]></dbname>
<active>1</active>
</connection>
</default_setup>
<default_read>
<connection>
<use/>
<host><![CDATA[Slave-host]]></host>
<username><![CDATA[user]]></username>
<password><![CDATA[pass]]></password>
<dbname><![CDATA[magento]]></dbname>
<type>pdo_mysql</type>
<model>mysql4</model>
<initStatements>SET NAMES utf8</initStatements>
<active>1</active>
</connection>
</default_read>
在此设置之前,您必须配置 mysql 主服务器和从服务器。 主服务器的配置 编辑/etc/my.cnf
在文件中添加以下内容:
[mysqld]
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
binlog_do_db = magento_demo
binlog_ignore_db = mysql
then restart your mysql server.
Configuration for slave server
edit /etc/my.cnf
在文件中添加以下内容:
[mysqld]
server-id=2
log-bin=mysql-bin
master-host=192.168.1.2
master-user=username
master-password=111111
master-port=3306
replicate-do-db=magento_demo
replicate-ignore-db=mysql
master-connect-retry=60
然后重新启动你的mysql服务器。让我认识Jaro。
我的一个客户使用 Amazon AWS RDS Aroura(兼容 MySQL 8.x)和集群、读写实例。
我花了一段时间才弄清楚为什么它没有使用
<default_read>/<connection>
。 config.xml
文件有 <use>default_setup</use>
。因此,无论您在 <default_read>/<connection>
部分中输入什么内容,它都会被 <use>default_setup</use>
覆盖。
所以你必须这样做
<default_read>
<connection>
<use/>
...
</connection>
</default_read>
...后跟您的读取实例凭据。
像这样设置
<use/>
会覆盖 config.xml
的 <use>default_setup</use>
并解决问题。