企业实战_24_MyCat实现读写分离
接上一篇:企業(yè)實戰(zhàn)_23_MyCat SQL防火墻
https://gblfy.blog.csdn.net/article/details/100074335
文章目錄
- 一、MyCat讀寫分離操作流程
- 二、環(huán)境部署安排:
- 三、主機操作103(node3)
- 3.1. 數(shù)據(jù)備份
- 3.2. 將node3.sql復(fù)制到節(jié)點5
- 3.3. 導(dǎo)入數(shù)據(jù)
- 3.4. 在查看是否創(chuàng)建主從同步的賬號
- 3.5. 創(chuàng)建 主從復(fù)制的賬號
- 3.6. 給用戶賦予操作所有對象的replication slave權(quán)限
- 四、在node5從機上創(chuàng)建復(fù)制鏈路
- 五、給mycat用戶授權(quán)
- 六、讀寫分離
- 6.1. 讀寫分離配置方式
- 6.2. 讀寫分離+高可用
- 6.3. zk腳本初始化
- 6.4. 配置同步驗證
- 6.5. 最終的mycat集群架構(gòu)
一、MyCat讀寫分離操作流程
二、環(huán)境部署安排:
| 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. 數(shù)據(jù)備份
mysqldump --master-data=2 --single-transaction --routines --triggers --events -uroot -p --databases product_db order_db03 order_db04 > node3.sql3.2. 將node3.sql復(fù)制到節(jié)點5
scp node3.sql root@192.168.92.105:/root3.3. 導(dǎo)入數(shù)據(jù)
mysql -uroot -p < node3.sql3.4. 在查看是否創(chuàng)建主從同步的賬號
mysql -uroot -p use mysql; #看是否存在re_impl主從復(fù)制賬號 select user,host from user;3.5. 創(chuàng)建 主從復(fù)制的賬號
create user 'im_repl'@'192.168.92.%' identified by '123456';3.6. 給用戶賦予操作所有對象的replication slave權(quán)限
grant replication slave on *.* to 'im_repl'@'192.168.92.%';四、在node5從機上創(chuàng)建復(fù)制鏈路
# 登陸數(shù)據(jù)庫 mysql -uroot -p # 建立復(fù)制的鏈路 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# 啟動復(fù)制鏈路 start slave;# 查看鏈路 show slave status \G現(xiàn)在完成了,mysql主從復(fù)制的建立
五、給mycat用戶授權(quán)
登錄node5,查看是否給mycat用戶授權(quán)
mysql -uroot -p123456 use mysql;# 看是否存在re_impl主從復(fù)制賬號 select user,host from user;# 在mysql主機上新建用戶用來操作數(shù)據(jù)庫 create user im_mycat@'192.168.92.%' identified by '123456';# 給操作數(shù)據(jù)庫讀寫的用戶賦予權(quán)限 grant select,insert,update,delete,execute on *.* to im_mycat@'192.168.92.%';六、讀寫分離
6.1. 讀寫分離配置方式
讀寫分離的準(zhǔn)備工作
登錄mycat節(jié)點(node1或者node4節(jié)點)
現(xiàn)在可以修改zk就可以同步mycat配置,由于不直觀,現(xiàn)暫時采用修改mycat配置文件,在初始化zk數(shù)據(jù),最后同步配置
6.2. 讀寫分離+高可用
cd /app/mycat/conf/zkconf/# 修改配置文件 vim schema.xml咱們對node3節(jié)點做的讀寫分離和高可用,因此,找到node3節(jié)點對應(yīng)的dataHost 標(biāo)簽#添加readhost標(biāo)簽,進行修改,在
將writeHost 標(biāo)內(nèi)部新增readHost 標(biāo)簽,在writeHost外部添加writeHost標(biāo)簽(節(jié)點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>調(diào)整為
<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>注:上面多添加一組寫標(biāo)簽是為了,當(dāng)主機宕機后,就把讀寫都移到從機上來,來達到mysql的高可用
將修改后的mycat配置信息,通過初始化zookeeper腳本,來將信息同步到zookeeper集群中,在同步zookeeper集群把信息同步到2臺mycat中
6.3. zk腳本初始化
重新將zk數(shù)據(jù)初始化,通過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 Done6.4. 配置同步驗證
查看剛才在zkconf服務(wù)器上修改的 schema.xml文件,mycat配置是否同步node1和node4服務(wù)器
# 登錄node1節(jié)點 [root@node1 ~]# cd /app/mycat/conf/ [root@node1 conf]# cat schema.xml # 登錄node4節(jié)點 [root@node4 ~]# cd /app/mycat/conf/ [root@node4 conf]# cat schema.xml6.5. 最終的mycat集群架構(gòu)
下一篇:企業(yè)實戰(zhàn)_19_Mycat_keepalived 安裝配置驗證
總結(jié)
以上是生活随笔為你收集整理的企业实战_24_MyCat实现读写分离的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软考 - 可靠性和可用性
- 下一篇: MyBatis-Plus_Conditi