MYSQL-读写分离

在mysql主从同步中,slave会同步master的数据。因此写数据要向master中写,读数据要从slave中读。
通过中间件(代理)实现读写分离。
在这里插入图片描述

1、为master,slave配置主从同步


2、部署mysql代理:
	rpm -ivh maxscale-xxxx.rhel.7.x86_64.rpm	#安装中间件

	vim /etc/maxscale.cnf	#修改配置文件
	[maxscale]
	threads=auto			#线程数量,自动,根据cpu核心数生成

	[server1]           	#定义数据库服务器
	type=server
	address=192.168.4.51    #主服务器ip
	port=3306
	protocol=MySQLBackend 

	[server2]            	#定义数据库服务器
	type=server
	address=192.168.4.52    #从服务器ip
	port=3306
	protocol=MySQLBackend 

	[MySQL Monitor]			#定义监控的数据库服务器
	type=monitor
	module=mysqlmon
	servers=server1, server2	#指明需要监控的数据库服务器列表,不能写ip
	user=monuser				#监控用户,要在server1和server2上授权
	passwd=123456			#密码
	monitor_interval=10000  

	#[Read-Only Service]	#只读服务,注释掉
	#...

	[Read-Write Service]	#读写分离服务
	type=service
	router=readwritesplit	#读写分离
	servers=server1, server2	#指明数据库服务器列表,不能写ip
	user=routeruser			#路由用户,用于验证数据库服务器是否存在,要在server1和server2上授权
	passwd=123456
	max_slave_connections=100%

	[MaxAdmin Service]		#定义管理服务
	type=service
	router=cli

	#[Read-Only Listener]	#只读服务的监听端口,注释掉
	#...

	[Read-Write Listener]	#读写服务的监听端口
	type=listener
	service=Read-Write Service	#读写服务
	protocol=MySQLClient
	port=4006

	[MaxAdmin Listener]	#管理服务的监听端口
	type=listener
	service=MaxAdmin Service
	protocol=maxscaled
	socket=default
	port=4016


3、在master上授权用户:(slave会自动同步)
监听用户:(用于连接数据库服务器)
	grant replication slave,replication client on *.* to monuser@"%" indentified by "123456"

路由用户:(用户验证数据库服务器是否存在,以及用户是否存在)
	grant select on mysql.* to routeruser@"%" identified by "123456"; 


4、启动服务:(192.168.4.10,代理服务器)
	maxscale -f /etc/maxscale.cnf


5、查看监听状态:(192.168.4.10代理服务器)
	maxadmin -uadmin -pmariadb -P4016
	MaxScale> list servers;


6、client连接测试:(192.168.4.5,client)
	①在master上添加访问数据库的用户:
	grant all on *.* to testuser@"%" indentified by "123456"
	②连接:
	mysql -h 192.168.4.10 -P4006 -utestuser -p123456
	③测试读写分离:
		写:
		通过客户机插入数据,在slave可以找到
		读:
		通过slave向slave中插入一条数据,使用client读取,可以读到数据。
		#master不会同步slave的数据,因此仅向slave中写数据,在master中则找不到这条数据

写总结的第三十九天!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值