基于proxysql實(shí)現(xiàn)MySQL讀寫(xiě)分離的實(shí)現(xiàn)實(shí)例
環(huán)境:
- 系統(tǒng)版本:CentOS 7
- MySQL版本:5.7.35
MySQL主從配置略過(guò)。
安裝
# 安裝 yum localinstall -y ./proxysql-2.2.0-1-centos7.x86_64.rpm # 啟動(dòng) systemctl start proxysql
配置
客戶(hù)端口號(hào): 6033。代理 mysql 服務(wù)的端口,也就是應(yīng)用連接使用的
管理端口號(hào): 6032。管理 proxysql配置 的端口,只能本地登錄
# 1. 登錄管理端
mysql -uadmin -padmin -h127.0.0.1 -P6032
# 2. 配置主從庫(kù)
use main;
insert into mysql_servers(hostgroup_id,hostname,port,weight,comment) values(1,'192.168.0.10',3306,1,'master1');
insert into mysql_servers(hostgroup_id,hostname,port,weight,comment) values(2,'192.168.0.11',3306,1,'slave1');
# 2.2 檢查添加結(jié)果
select * from main.mysql_servers;
# 2.3 加載配置到RUNTIME
load mysql servers to runtime;
# 2.4 寫(xiě)盤(pán)保存
save mysql servers to disk;
# 3. 配置proxysql客戶(hù)端賬戶(hù)密碼。
# 設(shè)置所有請(qǐng)求默認(rèn)到hostgroupid為1的實(shí)例然后再根據(jù)路由分發(fā)
# transaction_persistent為1開(kāi)啟事務(wù)支持
insert into mysql_users(username,password,default_hostgroup,transaction_persistent)values('root','123456',1,1);
# 3.2 查詢(xún)賬戶(hù)添加結(jié)果
select * from mysql_users;
# 3.3 保存
load mysql users to runtime;
save mysql users to disk;
# 4. 配置健康檢測(cè)賬號(hào)
# 4.1 登錄后端master的mysql控制臺(tái)
GRANT replication client ON *.* TO 'monitor'@'%' IDENTIFIED BY '123456';
flush privileges;
# 4.2 切換回proxy的控制臺(tái)
set mysql-monitor_username='monitor';
set mysql-monitor_password='123456';
load mysql variables to runtime;
save mysql variables to disk;
# 5. 配置讀寫(xiě)分離路由
# 將select語(yǔ)句全部路由至hostgroup_id=2的組,也就是從節(jié)點(diǎn)
# select * from tb for update這樣的語(yǔ)句是修改數(shù)據(jù)的,所以需要單獨(dú)定義,將它路由至hostgroup_id=1的組(也就是主節(jié)點(diǎn))
# 其他沒(méi)有被規(guī)則匹配到的組將會(huì)被路由至用戶(hù)默認(rèn)的組(mysql_users表中的default_hostgroup)
insert into mysql_query_rules(rule_id,active,match_digest,destination_hostgroup,apply)values(1,1,'^SELECT.*FOR UPDATE$',1,1);
insert into mysql_query_rules(rule_id,active,match_digest,destination_hostgroup,apply)values(2,1,'^SELECT',2,1);
load mysql query rules to runtime;
load admin variables to runtime;
save mysql query rules to disk;
save admin variables to disk;測(cè)試讀寫(xiě)分離
- 登錄客戶(hù)端
mysql -uroot -p'123456' -P6033 -h 127.0.0.1 # 隨便執(zhí)行點(diǎn)sql語(yǔ)句
- proxysql有個(gè)類(lèi)似審計(jì)的功能,可以看到各類(lèi)sql的執(zhí)行情況。在proxysql管理端執(zhí)行:
select * from stats.stats_mysql_query_digest; -- 或者 select hostgroup,schemaname,digest_text,count_star,sum_time,min_time,max_time,sum_rows_affected,sum_rows_sent from stats.stats_mysql_query_digest;
其它
- 修改proxysql后臺(tái)處理MySQL流量的后臺(tái)線(xiàn)程數(shù)。默認(rèn)為4
set mysql-threads=16; -- 查看 show variables like '%mysql-threads%';
到此這篇關(guān)于基于proxysql實(shí)現(xiàn)MySQL讀寫(xiě)分離的文章就介紹到這了,更多相關(guān)MySQL proxysql讀寫(xiě)分離內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MYSQL的慢SQL優(yōu)化的實(shí)現(xiàn)
本文主要介紹了MYSQL的慢SQL優(yōu)化的實(shí)現(xiàn),從慢SQL定義、影響、常見(jiàn)場(chǎng)景與危害、識(shí)別與監(jiān)控、分析、優(yōu)化方法、執(zhí)行計(jì)劃分析、案例分析、總結(jié)與最佳實(shí)踐、常見(jiàn)優(yōu)化誤區(qū)、日常開(kāi)發(fā)預(yù)防措施等方面詳細(xì)闡述,感興趣的可以了解一下2026-05-05
DataGrip連接Mysql并創(chuàng)建數(shù)據(jù)庫(kù)的方法實(shí)現(xiàn)
本文主要介紹了DataGrip連接Mysql并創(chuàng)建數(shù)據(jù)庫(kù)的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
MySQL?原理與優(yōu)化之原數(shù)據(jù)鎖的應(yīng)用
這篇文章主要介紹了MySQL?原理與優(yōu)化之原數(shù)據(jù)鎖的應(yīng)用,MySQL?中原數(shù)據(jù)鎖是系統(tǒng)自動(dòng)控制添加的,對(duì)于用戶(hù)來(lái)說(shuō)無(wú)需顯示調(diào)用,當(dāng)我們使用一張表的時(shí)候就會(huì)加上原數(shù)據(jù)鎖2022-08-08
通過(guò)Query Profiler查看MySQL語(yǔ)句運(yùn)行時(shí)間的操作方法
這篇文章主要介紹了通過(guò)Query Profiler查看MySQL語(yǔ)句運(yùn)行時(shí)間的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
MySQL 8.0.19支持輸入3次錯(cuò)誤密碼鎖定賬戶(hù)功能(例子)
這篇文章主要介紹了MySQL 8.0.19支持輸入3次錯(cuò)誤密碼鎖定賬戶(hù)功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01
基于SQL中的數(shù)據(jù)查詢(xún)語(yǔ)句匯總
以下是對(duì)SQL中的數(shù)據(jù)查詢(xún)語(yǔ)句進(jìn)行了匯總介紹,需要的朋友可以過(guò)來(lái)參考下2013-07-07

