接上一篇:企业实战_23_MyCat SQL防火墙
https://gblfy.blog.csdn.net/article/details/100074335
文章目录
- 一、MyCat读写分离操作流程
- 二、环境部署安排:
- 三、主机操作103(node3)
- 3.1. 数据备份
- 3.2. 将node3.sql复制到节点5
- 3.3. 导入数据
- 3.4. 在查看是否创建主从同步的账号
- 3.5. 创建 主从复制的账号
- 3.6. 给用户赋予操作所有对象的replication slave权限
- 四、在node5从机上创建复制链路
- 五、给mycat用户授权
- 六、读写分离
- 6.1. 读写分离配置方式
- 6.2. 读写分离+高可用
- 6.3. zk脚本初始化
- 6.4. 配置同步验证
- 6.5. 最终的mycat集群架构
一、MyCat读写分离操作流程
二、环境部署安排:
主机名 | IP地址 | 角色 |
---|---|---|
node1 | 192.168.92.101 | MYCAT MYSQL,ZK,Haproxy,Keepalived |
node2 | 192.168.92.102 | MYSQL,ZK |
node3 | 192.168.92.103 | MYSQL,ZK |
node4 | 192.168.92.104 | MYSQL,MYCAT ,Haproxy,Keepalived |
node5 | 192.168.92.105 | MYSQL |
三、主机操作103(node3)
3.1. 数据备份
mysqldump --master-data=2 --single-transaction --routines --triggers --events -uroot -p --databases product_db order_db03 order_db04 > node3.sql
3.2. 将node3.sql复制到节点5
scp node3.sql root@192.168.92.105:/root
3.3. 导入数据
mysql -uroot -p < node3.sql
3.4. 在查看是否创建主从同步的账号
mysql -uroot -p
use mysql;
#看是否存在re_impl主从复制账号
select user,host from user;
3.5. 创建 主从复制的账号
create user 'im_repl'@'192.168.92.%' identified by '123456';
3.6. 给用户赋予操作所有对象的replication slave权限
grant replication slave on *.* to 'im_repl'@'192.168.92.%';
四、在node5从机上创建复制链路
# 登陆数据库
mysql -uroot -p # 建立复制的链路
change master to master_host='192.168.92.103',master_user='im_repl',master_password='123456',MASTER_LOG_FILE='mysql-bin.000012', MASTER_LOG_POS=21272;# 查看链路
show slave status \G# 启动复制链路
start slave;# 查看链路
show slave status \G
现在完成了,mysql主从复制的建立
五、给mycat用户授权
登录node5,查看是否给mycat用户授权
mysql -uroot -p123456
use mysql;# 看是否存在re_impl主从复制账号
select user,host from user;# 在mysql主机上新建用户用来操作数据库
create user im_mycat@'192.168.92.%' identified by '123456';# 给操作数据库读写的用户赋予权限
grant select,insert,update,delete,execute on *.* to im_mycat@'192.168.92.%';
六、读写分离
6.1. 读写分离配置方式
读写分离的准备工作
登录mycat节点(node1或者node4节点)
现在可以修改zk就可以同步mycat配置,由于不直观,现暂时采用修改mycat配置文件,在初始化zk数据,最后同步配置
6.2. 读写分离+高可用
cd /app/mycat/conf/zkconf/# 修改配置文件
vim schema.xml
咱们对node3节点做的读写分离和高可用,因此,找到node3节点对应的dataHost 标签#添加readhost标签,进行修改,在
将writeHost 标内部新增readHost 标签,在writeHost外部添加writeHost标签(节点5)
<dataHost balance="3" maxCon="1000" minCon="10" name="mysql92103" writeType="0" switchType="1" dbType="mysql" dbDriver="native"><heartbeat>select user()</heartbeat><writeHost host="192.168.92.103" url="192.168.92.103:3306" password="123456" user="im_mycat">
</writeHost></dataHost>
调整为
<dataHost balance="3" maxCon="1000" minCon="10" name="mysql92103" writeType="0" switchType="1" dbType="mysql" dbDriver="native"><heartbeat>select user()</heartbeat><writeHost host="192.168.92.103" url="192.168.92.103:3306" password="123456" user="im_mycat"><readHost host="192.168.92.105" password="123456" url="192.168.92.105:3306" user="im_mycat"/>
</writeHost>
<writeHost host="192.168.92.105" password="123456" url="192.168.92.105:3306" user="im_mycat"/></dataHost>
注:上面多添加一组写标签是为了,当主机宕机后,就把读写都移到从机上来,来达到mysql的高可用
将修改后的mycat配置信息,通过初始化zookeeper脚本,来将信息同步到zookeeper集群中,在同步zookeeper集群把信息同步到2台mycat中
6.3. zk脚本初始化
重新将zk数据初始化,通过zk集群将mycat配置文件进行同步
cd /app/mycat/bin/
[root@node4 bin]# ./init_zk_data.sh
o2021-07-15 21:44:04 INFO JAVA_CMD=java
o2021-07-15 21:44:04 INFO Start to initialize /mycat of ZooKeeper
o2021-07-15 21:44:11 INFO Done
6.4. 配置同步验证
查看刚才在zkconf服务器上修改的 schema.xml文件,mycat配置是否同步node1和node4服务器
# 登录node1节点
[root@node1 ~]# cd /app/mycat/conf/
[root@node1 conf]# cat schema.xml
# 登录node4节点
[root@node4 ~]# cd /app/mycat/conf/
[root@node4 conf]# cat schema.xml
6.5. 最终的mycat集群架构
下一篇:企业实战_19_Mycat_keepalived 安装配置验证