Mysql Group Replication 主從(單主)中間件ProxySQL安裝配置

注意:第4、第5兩步的操作可以在mysql group replication主節點上先行執行。

 

1、下載安裝ProxySQL

wget https://github.com/sysown/proxysql/releases/download/v1.3.3/proxysql-1.3.3-1-centos67.x86_64.rpm
rpm –ivh proxysql-1.3.3-1-centos67.x86_64.rpm

 

2、啓動ProxySQL

service proxysql start

 

3、登錄ProxySQL

mysql -h127.0.0.1 -P6032 -uadmin -padmin

 

4、MGR集羣創建相關用戶並授權

#在集羣的主節點執行如下腳本
#添加監控用戶並授權
grant all privileges on *.* to 'proxysql'@'172.16.90.%' identified by 'proxysql';
#添加代理業務用戶並授權
CREATE USER 'proxyuser'@'%' IDENTIFIED BY 'proxypass'; 
GRANT INSERT,UPDATE,DELETE,SELECT ON * . * TO 'proxyuser'@'%';
flush privileges;

 

5、創建檢查MGR節點狀態的函數和視圖

參照前面的博客,在MGR主節點上執行下面鏈接中的SQL 

https://github.com/lefred/mysql_gr_routing_check/blob/master/addition_to_sys.sql

source /root/addition_to_sys.sql

 

6、配置proxysql

    添加MGR成員節點到proxysql mysql_servers表

insert into mysql_servers (hostgroup_id, hostname, port) values(1, '172.16.90.39', 3306);
insert into mysql_servers (hostgroup_id, hostname, port) values(2, '172.16.90.39', 3306);
insert into mysql_servers (hostgroup_id, hostname, port) values(2, '172.16.90.40', 3306);
insert into mysql_servers (hostgroup_id, hostname, port) values(2, '172.16.90.41', 3306);

    hostgroup_id = 1代表write group,針對我們提出的限制,這個地方只配置了一個節點;hostgroup_id = 2代表read group,包含了MGR的所有節點。

proxysql還可以配置讀寫分離,本文不考慮這個特性的配置。對於上面的hostgroup配置,所有的讀寫操作,默認會發送到hostgroup_id1hostgroup,也就是發送到寫節點上。

修改proxysql監控的用戶及密碼

UPDATE global_variables SET variable_value='proxysql' WHERE variable_name='mysql-monitor_username';
UPDATE global_variables SET variable_value='proxysql' WHERE variable_name='mysql-monitor_password';

 添加應用通過proxyuser訪問後端MGR節點的用戶

INSERT INTO MySQL_users(username,password,default_hostgroup) VALUES ('proxyuser','proxypass',1);

 global_variablesmysql_serversmysql_users表的信息加載到RUNTIME,更進一步加載到DISK

LOAD MYSQL VARIABLES TO RUNTIME;
SAVE MYSQL VARIABLES TO DISK;
LOAD MYSQL SERVERS TO RUNTIME;
SAVE MYSQL SERVERS TO DISK;
LOAD MYSQL USERS TO RUNTIME;
SAVE MYSQL USERS TO DISK;

 

 

7、配置scheduler

Github地址https://github.com/ZzzCrazyPig/proxysql_groupreplication_checker下載gr_sw_mode_checker.sh

將腳本gr_sw_mode_cheker.sh放到目錄/var/lib/proxysql/下 

proxysqlscheduler表裏面加載如下記錄,然後加載到RUNTIME使其生效,同時還可以持久化到磁盤

 

insert into scheduler(id, active, interval_ms, filename, arg1, arg2, arg3, arg4)
  values(1, 1, 3000, '/var/lib/proxysql/gr_sw_mode_checker.sh', 1, 2, 1, '/var/lib/proxysql/checker.log');
LOAD SCHEDULER TO RUNTIME;
SAVE SCHEDULER TO DISK;

 

8、java連接proxysql配置

 

jdbc.url=jdbc:mysql://172.16.90.39:6033/ifaes_test?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true
jdbc.username=proxyuser
jdbc.password=proxypass

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章