快捷搜索: 王者荣耀 脱发

MySQL 双主双从+读写分离配置

MySQL 双主双从+读写分离配置

1.架构图如下

2.配置如下

Master1,即百度1配置:

[mysqld]

# 启用二进制日志
log-bin=mysql-bin

# 唯一服务id
server-id=1(重点,必须唯一)

# 需要复制的数据库名
binlog-do-db=testdb

# 设置log-bin格式
binlog_format=STATEMENT

# 作为从库时写入bin-log日志(重点)
log-slave-updates

# 设置自增递增量(重点)
auto-increment-increment=2

# 设置自增起始id(重点)
auto-increment-offset=1

Master2,即百度2配置:

[mysqld]

# 启用二进制日志
log-bin=mysql-bin

# 唯一服务id(重点,必须唯一)
server-id=2

# 需要复制的数据库名
binlog-do-db=testdb

# 设置log-bin格式
binlog_format=STATEMENT

# 作为从库时写入bin-log日志(重点)
log-slave-updates

# 设置自增递增量(重点)
auto-increment-increment=2

# 设置自增起始id(重点)
auto-increment-offset=1

Slave1,即百度3,作为Master1的从机:

[mysqld]

# 唯一服务id
server-id=3

# 启用中继日志
relay-log=mysql-relay

Slave2,即百度4,作为Master2的从机:

[mysqld]

# 唯一服务id
server-id=4

# 启用中继日志
relay-log=mysql-relay
  1. 配置好之后重启四台主机的Mysql服务
  2. 确保防火墙都关闭
  3. 在两台Master主机中执行授权命令,创建Slave角色,作为从机登录用
GRANT REPLICATION SLAVE ON *.* TO slave@% IDENTIFIED BY 123123;

5.按照主从复制的方式将两台从机即百度3,百度4分别设置主机为百度1,百度2,然后启动复制,具体主从复制参考我之前的主从复制文章。 6.按照同样的方式设置两台主机的主从复制,百度1的主机为百度2,百度2的主机为百度1。

7.配置mycat,主要为schema.xml。

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

	<schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn1">
	</schema>

	<dataNode name="dn1" dataHost="localhost1" database="testdb" />
	<!--双主双从-->
	<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
			  writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1"  slaveThreshold="100">
		<heartbeat>select user()</heartbeat>
		<!--百度1-->
		<writeHost host="hostM1" url="jdbc:mysql://106.13.127.37:3306" user="root"
				   password="4513zzk.">
			<!-- 百度3-->
			<readHost host="hostS1" url="jdbc:mysql://106.12.196.8:3306" user="root"
				password="4513zzk."></readHost>
		</writeHost>
		<!--百度2-->
		<writeHost host="hostM2" url="jdbc:mysql://106.13.32.222:3306" user="root"
                                   password="4513zzk.">
                        <!-- 百度4-->
                        <readHost host="hostS2" url="jdbc:mysql://106.12.71.243:3306" user="root"
                                password="4513zzk."></readHost>
                </writeHost>
	</dataHost>
</mycat:schema>

8.配置完毕,百度1和百度2为写主机,百度3和百度4为读主机

经验分享 程序员 微信小程序 职场和发展