magento mysql 主/从复制 - 从站未使用

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

我设置了一个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监控)

拍拍

mysql magento replication
2个回答
2
投票

我想你可以尝试这个设置

您必须使用从属数据库进行读取(选择查询)操作,使用主数据库进行写入(插入和更新查询)。 在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。


0
投票

我的一个客户使用 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>
并解决问题。

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