mysql双主双从-读写分离

目录

环境准备

服务器

服务器的配置

主库的配置

从库的配置

两台主库相互复制

测试效果

读写分离

mycat的配置

配置schema.xml文件

配置server .xml文件

启动并登录mycat:

查看读写分离是否成功

环境准备

服务器

五台服务器:

192.168.249.200 master1  软件:mysql

192.168.249.201 master2  软件:mysql

192.168.249.202 mycat     软件:mysql 、mycat、jdk

192.168.249.203 slave1    软件:mysql

192.168.249.204 slave2    软件:mysql

关闭所有服务器的防火墙和selinux:

systemctl stop firewalld        关闭防火墙
systemctl disable firewalld   设置开机不启动

vim /etc/selinux/config

把        SELINUX=enforcing 

改为    SELINUX=disabled

master1服务器负责处理所有的写请求,slave1、master2、slave2负责所有的读请求。当master1宕机,master2会成为新的负责写请求的主机,master1、master2互为备份机。在此集群中,四台服务器的数据都是一致的,mycat服务器则实现读写分离。

服务器的配置

主库的配置

master1的配置:

修改配置文件/etc/my.cnf

添加以下配置:

#mysql服务器id,保证整个集群环境中唯一
server-id=2
#指定同步的数据库
binlog-do-db=db01
binlog-do-db=db02
binlog-do-db=db03
#在作为从数据库的时候,有写入操作也要更新二进制文件
log-slave-updates

重启mysqld服务:

root@localhost ~]# service mysqld restart
Redirecting to /bin/systemctl restart mysqld.service       

master2的配置:

修改配置文件/etc/my.cnf

添加以下配置:

#mysql服务器id,保证整个集群环境中唯一
server-id=3
#指定同步的数据库
binlog-do-db=db01
binlog-do-db=db02
binlog-do-db=db03
#在作为从数据库的时候,有写入操作也要更新二进制文件
log-slave-updates

重启mysqld服务:

root@localhost ~]# service mysqld restart
Redirecting to /bin/systemctl restart mysqld.service       

创建主从复制的账号:

分别登录到master1和master2的MySQL,执行:

此语句创建root用户,密码123456,该root用户可以在任意主机上连接mysql服务      

create user 'cyx'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

此语句为root用户赋予主从复制权限

grant replication slave on *.* to 'cyx'@'%';

查看两台master主库的二进制坐标:

master1:

show master status;
+---------------+----------+----------------+------------------+-------------------+
| File          | Position | Binlog_Do_DB   | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+----------------+------------------+-------------------+
| binlog.000004 |      658 | db01,db02,db03 |                  |                   |
+---------------+----------+----------------+------------------+-------------------+
1 row in set (0.00 sec)
 

maser2:

show master status;
+---------------+----------+----------------+------------------+-------------------+
| File          | Position | Binlog_Do_DB   | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+----------------+------------------+-------------------+
| binlog.000004 |      878 | db01,db02,db03 |                  |                   |
+---------------+----------+----------------+------------------+-------------------+
1 row in set (0.00 sec)

从库的配置

slave1:

修改配置文件/etc/my.cnf,添加:

# mysql服务器id,保证整个集群环境中唯一
server-id=4

重启mysqld服务:

root@localhost ~]# service mysqld restart
Redirecting to /bin/systemctl restart mysqld.service   

slave2:

修改配置文件/etc/my.cnf,添加:

# mysql服务器id,保证整个集群环境中唯一
server-id=5

重启mysqld服务:

root@localhost ~]# service mysqld restart
Redirecting to /bin/systemctl restart mysqld.service   

关联两台从库对应的主库:

slave1关联复制master1:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值