MGR 8.0 + ProxySQL 2.0 部署實錄

架構概述

MGR node1:192.168.222.76:3307

MGR node2:192.168.222.77:3307

MGR node3:192.168.222.78:3307

ProxySQL:192.168.222.75

 

一、數據庫節點安裝

1.1、數據庫服務器基礎配置

分別在3臺數據節點(192.168.222.76、77、78)上執行:

(1)設置hostname:

hostnamectl set-hostname mgr_node1   (node2/node3)

(2)編輯 /etc/hosts,新增host信息

192.168.222.76  mgr_node1
192.168.222.77  mgr_node2
192.168.222.78  mgr_node3

(3)關閉SELinux:setenforce 0

(4)修改ulimit值,vim /etc/security/limits.conf

* soft nofile 1024000
* hard nofile 1024000

 

1.2、數據庫節點初始化

1.2.1、數據庫服務依賴包

rpm -e mariadb-devel

yum install mysql-community-common

yum install mysql-community-libs

yum install mysql-community-devel

yum install mysql-community-libs-compat

yum install libaio

1.2.2、創建數據庫用戶

groupadd mysql

useradd -r -g mysql -s /bin/false mysql

1.2.3、解壓二進制文件

xz -d mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

tar xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar -C /usr/local/

ln -s mysql-8.0.20-linux-glibc2.12-x86_64 mysql3307

cd mysql3307

mkdir mysql-files

chown mysql:mysql mysql-files

chmod 750 mysql-files

1.2.4、配置文件中添加MGR信息

以第一節點爲例,MGR關鍵配置如下

server_id=2220763307
report_host='mgr_node1'
gtid_mode=ON
enforce_gtid_consistency=ON
binlog_format=row
binlog_checksum=NONE

disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
#兼容老版本客戶端
default_authentication_plugin=mysql_native_password

# 默認算法已經是XXHASH64,可以不配置
transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaaaaaaaaaaaaaa"
# 單主
loose-group_replication_single_primary_mode=ON
# 單主模式下,關閉該配置
loose-group_replication_enforce_update_everywhere_checks=OFF
# 不自動啓動group replication
loose-group_replication_start_on_boot=OFF
loose-group_replication_local_address= "192.168.222.76:33071"
loose-group_replication_group_seeds= "192.168.222.76:33071,192.168.222.77:33071,192.168.222.78.33071"
# 設立當前節點爲集羣引導節點時短暫開啓,默認OFF,可以不配置
loose-group_replication_bootstrap_group=OFF

運行uuidgen,生成的uuid填入:group_replication_group_name

1.2.5、初始化數據

./bin/mysqld --defaults-file=/usr/local/mysql3307/my.cnf --initialize-insecure --user=mysql

1.2.6、啓動第一節點

./bin/mysqld --defaults-file=/usr/local/mysql3307/my.cnf &

 

二、MGR第一節點配置

2.1、集羣同步賬號

CREATE USER 'mgr_repl'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

# 集羣間同步數據用

GRANT REPLICATION SLAVE ON *.* TO 'mgr_repl'@'%';

 

2.2、安裝group replication插件

INSTALL PLUGIN group_replication SONAME 'group_replication.so';

CHANGE MASTER TO MASTER_USER='mgr_repl', MASTER_PASSWORD='123456' FOR CHANNEL 'group_replication_recovery';

FLUSH PRIVILEGES;

 

2.3、啓動group replication

set global group_replication_bootstrap_group=ON;

start group_replication;

set global group_replication_bootstrap_group=OFF;

確認集羣狀態:

root@testnode1 [14:38] > SELECT * FROM performance_schema.replication_group_members;
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION |
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+
| group_replication_applier | 3d35218d-94c5-11ea-b213-005056b8a4a4 | mgr_node1   |        3307 | ONLINE       | PRIMARY     | 8.0.20         |
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+
1 row in set (0.01 sec)

 

三、MGR其餘節點啓動

3.1、全量同步方式(適用於集羣中已有節點的binlog完整保留的情況)

新節點正常初始化後啓動,執行:

INSTALL PLUGIN group_replication SONAME 'group_replication.so';

(非必要,建議執行)INSTALL PLUGIN clone SONAME 'mysql_clone.so';

CHANGE MASTER TO MASTER_USER='mgr_repl', MASTER_PASSWORD='123456' FOR CHANNEL 'group_replication_recovery';

start group_replication;

查看集羣中節點:

root@testnode2 [18:04] > SELECT * FROM performance_schema.replication_group_members;
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION |
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+
| group_replication_applier | 3d35218d-94c5-11ea-b213-005056b8a4a4 | mgr_node1   |        3307 | ONLINE       | PRIMARY     | 8.0.20         |
| group_replication_applier | 5da974a5-94f3-11ea-a178-005056b8c7db | mgr_node2   |        3307 | ONLINE       | SECONDARY   | 8.0.20         |
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+
2 rows in set (0.01 sec)

 

3.2、clone plugin方式(適用於集羣中已有節點的binlog做過清理的情況)

名詞解釋:Donor節點(集羣中已有節點) = > Recipient節點(欲加入集羣的節點)

3.2.1、備份插件安裝

首先,在donor節點檢查是否已安裝mysql_clone插件:

show plugins;

INSTALL PLUGIN clone SONAME 'mysql_clone.so';

然後,新節點正常初始化後啓動,安裝 group_replication 和 mysql_clone 插件:

INSTALL PLUGIN group_replication SONAME 'group_replication.so';

INSTALL PLUGIN clone SONAME 'mysql_clone.so';

recipient節點的group replication插件需要在克隆前就確保已安裝,否則啓動克隆時報錯如下:

ERROR 3870 (HY000): Clone Donor plugin group_replication is not active in Recipient.

3.2.2、Donor節點建立遠程備份賬號

遠程備份賬號權限:BACKUP_ADMIN

CREATE USER 'clone_user'@'%' IDENTIFIED BY '123456';

GRANT BACKUP_ADMIN on *.* to 'clone_user'@'%';

flush privileges;

3.2.3、Donor本地備份試驗

來到donor節點

# cd /data/

# mkdir clone_dir

# chown -R mysql:mysql clone_dir

mysql > clone local data directory = '/data/clone_dir/20200513';

備份進度可以通過如下sql查看:

root@testnode1 [21:59] > SELECT STAGE, STATE, END_TIME FROM performance_schema.clone_progress;
+-----------+-------------+----------------------------+
| STAGE     | STATE       | END_TIME                   |
+-----------+-------------+----------------------------+
| DROP DATA | Completed   | 2020-05-13 21:48:34.584910 |
| FILE COPY | Completed   | 2020-05-13 21:48:40.907383 |
| PAGE COPY | Completed   | 2020-05-13 21:48:41.113312 |
| REDO COPY | Completed   | 2020-05-13 21:48:41.315660 |
| FILE SYNC | Completed   | 2020-05-13 21:48:51.580895 |
| RESTART   | Not Started | NULL                       |
| RECOVERY  | Not Started | NULL                       |
+-----------+-------------+----------------------------+
7 rows in set (0.00 sec)

Tips:備份的文件配合一份新的配置文件,就可以在本地快速引導一套新的mysql實例

注意修改以下配置項,避免衝突:

server_id=2220783317
report_host='mgr_node4'
port    = 3317
mysqlx-port=33170
datadir    = /tmp/clone_dir/20200514
loose-group_replication_local_address= "192.168.222.78:33171"
loose-group_replication_group_seeds= "192.168.222.76:33071,192.168.222.77:33071,192.168.222.78.33071,192.168.222.78:33171"

root@testnode3 [15:17] > SELECT * FROM performance_schema.replication_group_members;
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION |
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+
| group_replication_applier | 3d35218d-94c5-11ea-b213-005056b8a4a4 | mgr_node1   |        3307 | ONLINE       | PRIMARY     | 8.0.20         |
| group_replication_applier | 5da974a5-94f3-11ea-a178-005056b8c7db | mgr_node2   |        3307 | ONLINE       | SECONDARY   | 8.0.20         |
| group_replication_applier | a553c26f-95b2-11ea-b31e-005056b854d7 | mgr_node4   |        3317 | ONLINE       | SECONDARY   | 8.0.20         |
| group_replication_applier | f1776459-958f-11ea-8dec-005056b854d7 | mgr_node3   |        3307 | ONLINE       | SECONDARY   | 8.0.20         |
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+
4 rows in set (0.00 sec)

 

3.2.4、Recipient節點遠程獲取克隆

step1、來到recipient節點,使用至少權限爲CLONE_ADMIN的賬號登錄(注:CLONE_ADMIN包含了BACKUP_ADMIN、SHUTDOWN權限)

step2、指向Donor節點

SET GLOBAL clone_valid_donor_list = '192.168.222.76:3307';

step3、填入Donor節點上的備份賬號

CLONE INSTANCE FROM 'clone_user'@'192.168.222.76':3307 IDENTIFIED BY '123456';

step4、克隆結束後,根據原先recipient節點的啓動方式執行關閉或自動重啓新節點。

Tips: 若以mysqld方式啓動,克隆完成後會有如下報錯,屬於正常現象(目前僅mysqld_safe方式支持自動重啓):

ERROR 3707 (HY000): Restart server failed (mysqld is not managed by supervisor process)

3.2.5、啓動recipient節點(mysqld)

cd /usr/local/mysql3307

./bin/mysqld --defaults-file=/usr/local/mysql3307/my.cnf &

3.2.6、加入MGR集羣

CHANGE MASTER TO MASTER_USER='mgr_repl', MASTER_PASSWORD='123456' FOR CHANNEL 'group_replication_recovery';

start group_replication;

 

3.3、恢復xtrabackup備份方式(適用於集羣中已有節點的binlog做過清理的情況)

由於8.0.20的redo log格式有調整。xtrabackup-8.0.11基於8.0.18開發,故暫無法使用。官方回覆如下:

更新:Percona XtraBackup 8.0.12版本已支持MySQL 8.0.20

 

四、ProxySQL

4.1、安裝

如下地址下載rpm包,安裝

https://github.com/sysown/proxysql/releases

systemctl start proxysql

默認用戶名、密碼:admin:admin

mysql -u admin -padmin -h 127.0.0.1 -P6032 --prompt='Admin> '

4.2、修改ProxySQL基礎配置

Admin> use main

4.2.1、修改proxysql的admin密碼

Admin> update global_variables set variable_value = 'admin:adminpasswd' where variable_name = 'admin-admin_credentials';
Admin> LOAD ADMIN VARIABLES TO RUNTIME;
Admin> SAVE ADMIN VARIABLES TO DISK;

4.2.2、修改默認字符集utf8爲utf8mb4

set mysql-default_charset='utf8mb4';
set mysql-default_collation_connection='utf8mb4_general_ci';
set mysql-max_allowed_packet=67108864;    #對應後端數據庫max_allowed_packet
#set mysql-ping_interval_server_msec=60000;        #sleep會話保持時長120s
set mysql-max_connections=10000;                #ProxySQL能處理前端請求的最大連接數
set mysql-server_version='8.0.20';                #proxysql響應給客戶端的MySQL版本號
set mysql-set_query_lock_on_hostgroup=0;        #set語法兼容

Tips:避免如下報錯:
9006 - ProxySQL Error: connection is locked to hostgroup 10 but trying to reach hostgroup 30
https://github.com/sysown/proxysql/issues/2202

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

4.2.3、定義寫、備寫、讀、離線組id

Admin> insert into mysql_group_replication_hostgroups(writer_hostgroup,backup_writer_hostgroup,reader_hostgroup, offline_hostgroup,active,max_writers,writer_is_also_reader) 
values (10,20,30,40,1,1,1);

Tips:
Another similar option is currently being implemented in ProxySQL 2.0.9 for the transactions_behind check. See below:
mysql-monitor_groupreplication_max_transactions_behind
Currently, if group replication max_transactions_behind exceeds the threshold once, the node is evicted from the cluster. 
The upcoming 2.0.9 release features another additional variable which will define a count for such checks so that max_transactions_behind would have to fail more than once (x number of times) before eviction.
mysql-monitor_groupreplication_max_transactions_behind_count默認3

將配置生效並存儲:
Admin> load mysql servers to runtime;
Admin> save mysql servers to disk;

確認已生效:
Admin> select * from runtime_mysql_group_replication_hostgroups;
+------------------+-------------------------+------------------+-------------------+--------+-------------+-----------------------+-------------------------+---------+
| writer_hostgroup | backup_writer_hostgroup | reader_hostgroup | offline_hostgroup | active | max_writers | writer_is_also_reader | max_transactions_behind | comment |
+------------------+-------------------------+------------------+-------------------+--------+-------------+-----------------------+-------------------------+---------+
| 10               | 20                      | 30               | 40                | 1      | 1           | 0                     | 100                     | NULL    |
+------------------+-------------------------+------------------+-------------------+--------+-------------+-----------------------+-------------------------+---------+
1 row in set (0.00 sec)

 

4.2.4、定義後端數據庫

Admin> insert into mysql_servers(hostgroup_id,hostname,port,max_connections) values(10,"192.168.222.76",3307,5000);
Admin> insert into mysql_servers(hostgroup_id,hostname,port,max_connections) values(30,"192.168.222.77",3307,5000);
Admin> insert into mysql_servers(hostgroup_id,hostname,port,max_connections) values(30,"192.168.222.78",3307,5000);

將配置生效並存儲:
Admin> load mysql servers to runtime;
Admin> save mysql servers to disk;

確認已生效:
select * from runtime_mysql_servers;
+--------------+----------------+------+-----------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
| hostgroup_id | hostname       | port | gtid_port | status | weight | compression | max_connections | max_replication_lag | use_ssl | max_latency_ms | comment |
+--------------+----------------+------+-----------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
| 10           | 192.168.222.76 | 3307 | 0         | ONLINE | 1      | 0           | 5000            | 0                   | 0       | 0              |         |
| 30           | 192.168.222.78 | 3307 | 0         | ONLINE | 1      | 0           | 5000            | 0                   | 0       | 0              |         |
| 30           | 192.168.222.77 | 3307 | 0         | ONLINE | 1      | 0           | 5000            | 0                   | 0       | 0              |         |
+--------------+----------------+------+-----------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
3 rows in set (0.00 sec)

 

4.2.5、配置監控賬號

在後端DB執行
需要在後端DB添加如下監控視圖:(來源https://github.com/lefred/mysql_gr_routing_check/blob/master/addition_to_sys.sql)

USE sys;
DELIMITER $$

CREATE FUNCTION my_id() RETURNS TEXT(36) DETERMINISTIC NO SQL RETURN (SELECT @@global.server_uuid as my_id);$$

CREATE FUNCTION gr_member_in_primary_partition()
    RETURNS VARCHAR(3)
    DETERMINISTIC
    BEGIN
      RETURN (SELECT IF( MEMBER_STATE='ONLINE' AND ((SELECT COUNT(*) FROM
    performance_schema.replication_group_members WHERE MEMBER_STATE NOT IN ('ONLINE', 'RECOVERING')) >=
    ((SELECT COUNT(*) FROM performance_schema.replication_group_members)/2) = 0),
    'YES', 'NO' ) FROM performance_schema.replication_group_members JOIN
    performance_schema.replication_group_member_stats USING(member_id) where member_id=my_id());
END$$

CREATE VIEW gr_member_routing_candidate_status AS SELECT
sys.gr_member_in_primary_partition() as viable_candidate,
IF( (SELECT (SELECT GROUP_CONCAT(variable_value) FROM
performance_schema.global_variables WHERE variable_name IN ('read_only',
'super_read_only')) != 'OFF,OFF'), 'YES', 'NO') as read_only,
Count_Transactions_Remote_In_Applier_Queue as transactions_behind, Count_Transactions_in_queue as 'transactions_to_cert' 
from performance_schema.replication_group_member_stats where member_id=my_id();$$

DELIMITER ;

create user 'proxysql_monitor'@'%' identified by '123456';
grant select on sys.gr_member_routing_candidate_status to 'proxysql_monitor'@'%';
flush privileges;

在proxysql中錄入監控賬號信息:
Admin> UPDATE global_variables SET variable_value='proxysql_monitor' WHERE variable_name='mysql-monitor_username';
Admin> UPDATE global_variables SET variable_value='123456' WHERE variable_name='mysql-monitor_password';

縮短監控巡檢週期到2秒(##需與官方文檔覈對##)
(默認60000、10000、1500):
UPDATE global_variables SET variable_value='2000' 
WHERE variable_name IN ('mysql-monitor_connect_interval','mysql-monitor_ping_interval','mysql-monitor_read_only_interval');

遇到: MySQL_Session.cpp:1454:handler_again___status_PINGING_SERVER(): [ERROR] Detected a broken connection during ping on (10,10.10.7.53,3306) , FD (Conn:2339 , MyDS:2339) : 2013, Lost connection to MySQL server during query
可適當調大mysql-monitor_ping_interval:2000=>5000


運行如下命令進行校對:
SELECT * FROM global_variables WHERE variable_name LIKE 'mysql-monitor_%';
無誤後,將配置生效並存儲
Admin> LOAD MYSQL VARIABLES TO RUNTIME;
Admin> SAVE MYSQL VARIABLES TO DISK;

確認監控是否可用(未配置前,是access denied狀態)
Admin> SELECT * FROM monitor.mysql_server_connect_log ORDER BY time_start_us DESC LIMIT 10;
+----------------+------+------------------+-------------------------+-------------------------------------------------------------------------+
| hostname       | port | time_start_us    | connect_success_time_us | connect_error                                                           |
+----------------+------+------------------+-------------------------+-------------------------------------------------------------------------+
| 192.168.222.78 | 3307 | 1589546175511459 | 1723                    | NULL                                                                    |
| 192.168.222.77 | 3307 | 1589546175088734 | 1492                    | NULL                                                                    |
| 192.168.222.76 | 3307 | 1589546174666010 | 842                     | NULL                                                                    |
| 192.168.222.76 | 3307 | 1589546115653773 | 1281                    | NULL                                                                    |
| 192.168.222.77 | 3307 | 1589546115160901 | 1767                    | NULL                                                                    |
| 192.168.222.78 | 3307 | 1589546114667025 | 1431                    | NULL                                                                    |
| 192.168.222.78 | 3307 | 1589546090462462 | 0                       | Access denied for user 'monitor'@'192.168.222.76' (using password: YES) |
| 192.168.222.76 | 3307 | 1589546089762699 | 0                       | Access denied for user 'monitor'@'192.168.222.76' (using password: YES) |
| 192.168.222.77 | 3307 | 1589546089063100 | 0                       | Access denied for user 'monitor'@'192.168.222.76' (using password: YES) |
| 192.168.222.77 | 3307 | 1589546030519571 | 0                       | Access denied for user 'monitor'@'192.168.222.76' (using password: YES) |
+----------------+------+------------------+-------------------------+-------------------------------------------------------------------------+
10 rows in set (0.00 sec)

Admin> SELECT * FROM monitor.mysql_server_ping_log ORDER BY time_start_us DESC LIMIT 10;

 

4.2.6、配置簡單讀寫分離規則(僅測試用)

insert into mysql_query_rules(rule_id,active,match_digest,destination_hostgroup,apply) VALUES (101,1,"^SELECT .* FOR UPDATE$",10,1),(102,1,"^SELECT",30,1);

將配置生效並存儲:
load mysql query rules to runtime;
save mysql query rules to disk;

 

4.2.7、配置應用賬號

ProxySQL中配置:
insert into mysql_users(username,password,default_hostgroup) values('proxydb','proxydb',10);
LOAD MYSQL USERS TO RUNTIME;

load to runtime(memory=>runtime)時,會將runtime層的密碼自動加密(admin-hash_passwords默認ON):
複測:SELECT username,password FROM runtime_mysql_users;

引用runtime層的加密密碼到memory層:
SAVE MYSQL USERS FROM RUNTIME;
複測:SELECT username,password FROM mysql_users;

引用memory層的加密密碼到disk層:
SAVE MYSQL USERS TO DISK;

後端DB配置:
create user 'proxydb'@'%' identified by 'proxydb';
grant XXX on *.* to 'proxydb'@'%';

通過ProxySQL的IP和P6033端口就能訪問了,自動讀寫分離

注:用begin顯示開始的事務,默認直接走寫節點

 

附1:cnf文件備份方法,用於傳遞到備用proxysql上
how to copy runtime configuration to another ProxySQL server?
SELECT CONFIG INTO OUTFILE /tmp/f1;
alias:SAVE CONFIG TO FILE /tmp/f2;

備用proxysql配置生效:
法一、
先刪除/var/lib/proxysql/proxysql.db,
再覆蓋備份文件到/etc/proxysql.cnf,修改權限爲root:proxysql
重啓備用proxysql

附2:
sysbench --report-interval=5 --num-threads=4 --num-requests=0 --max-time=20 --test=tests/db/oltp.lua --mysql-user='msandbox' --mysql-password='msandbox' --oltp-table-size=10000 --mysql-host=127.0.0.1 --mysql-port=6033 run
sysbench --num-threads=4 --max-requests=0 --max-time=20 --test=tests/db/oltp.lua --mysql-user='msandbox' --mysql-password='msandbox' --oltp-table-size=10000 --mysql-host=127.0.0.1 --mysql-port=6033 --db-ps-mode=disable run
 

 

五、ProxySQL Cluster配置

 

排版待編輯

已有節點完成配置後
ProxySQL Cluster信息配置
insert into proxysql_servers(hostname,port) values('10.10.7.51',6032),('10.10.7.52',6032);
load proxysql servers to runtime;
save proxysql servers to disk;

配置用於實例間通訊的賬號(;前爲本地登錄賬號,;後爲實例間同步端口)
Admin> update global_variables set variable_value = 'admin:13&3biYvWHQ7;proxysql_cluster:17yFhXm62$zH' where variable_name = 'admin-admin_credentials';

Admin> update global_variables set variable_value = 'proxysql_cluster' where variable_name = 'admin-cluster_username';
Admin> update global_variables set variable_value = '17yFhXm62$zH' where variable_name = 'admin-cluster_password';

SELECT * FROM global_variables WHERE variable_name LIKE 'admin-cluster_%';
確認無誤後:
Admin> LOAD ADMIN VARIABLES TO RUNTIME;
Admin> SAVE ADMIN VARIABLES TO DISK;


安裝新節點並啓動:
sudo systemctl start proxysql

# 登錄新ProxySQL節點,錄入以下cluster信息(sudo tail -f /var/lib/proxysql/proxysql.log觀察老節點輸出)
Admin> update global_variables set variable_value = 'admin:13&3biYvWHQ7;proxysql_cluster:17yFhXm62$zH' where variable_name = 'admin-admin_credentials';
Admin> update global_variables set variable_value = 'proxysql_cluster' where variable_name = 'admin-cluster_username';
Admin> update global_variables set variable_value = '17yFhXm62$zH' where variable_name = 'admin-cluster_password';

Admin> insert into proxysql_servers(hostname,port) values('10.10.7.51',6032),('10.10.7.52',6032);

Admin> load admin variables to runtime;
Admin> save admin variables to disk;

Admin> load proxysql servers to runtime;
Admin> save proxysql servers to disk;


目前,已確認以下值不會同步,需手動設置:
set mysql-default_charset='utf8mb4';
set mysql-default_collation_connection='utf8mb4_general_ci';
set mysql-max_connections=10000;                #ProxySQL能處理前端請求的最大連接數
set mysql-server_version='8.0.20';                #proxysql響應給客戶端的MySQL版本號
set mysql-set_query_lock_on_hostgroup=0;        #set語法兼容
LOAD MYSQL VARIABLES TO RUNTIME;
SAVE MYSQL VARIABLES TO DISK;

 

 

參考文檔:

MySQL 8.0 Reference Manual: 18.2.1 Deploying Group Replication in Single-Primary Mode

MySQL8.0新特性之clone

https://proxysql.com/documentation/ProxySQL-Configuration/

https://proxysql.com/documentation/proxysql-read-write-split-howto/

https://www.colabug.com/2019/1224/6764189/

 

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