proxysql使用

安装

1
2
3
4
apt-get install -y wget default-mysql-client inotify-tools procps
dpkg -i proxysql_2.7.1-ubuntu24_amd64.deb
proxysql --reload -f /etc/proxysql.cnf

当 ProxySQL 启动后,将会监听两个端口:
Admin 管理接口:默认为 6032 该端口用于管理配置 ProxySQL。
接收业务 SQL 接口:默认为 6033 用于服务业务端口,类似于 MySQL 的 3306 端口。

请添加图片描述

直接使用 MySQL 客户端连接这个管理接口

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

查询 Admin 用户的密码

1
2
3
4
5
6
Admin> select @@admin-admin_credentials;
+---------------------------+
| @@admin-admin_credentials |
+---------------------------+
| admin:admin |
+---------------------------+

修改 Admin 接口密码:

1
2
3
4
5
6
7
set admin-admin_credentials='admin:YouPassword';

新增管理员账户:myuser:myuser
set admin-admin_credentials='admin:admin;myuser:myuser';

load admin variables to runtime; -- 立即生效
save admin variables to disk; -- 持久化磁盘

查询后端实例

1
select * from mysql_servers;

查询

设置监控后端使用的账号信息

1
2
3
4
5
6
set mysql-monitor_username = 'root_snowpaw';
set mysql-monitor_password = 'cS5!Z3&Qy9Nz!NRI';

-- 配置生效
load mysql variables to runtime;
save mysql variables to disk;

配置后端节点,写入后端节点的 ip、端口、主机组。

1
2
3
insert into mysql_servers (hostgroup_id, hostname, port) values (1, 'rm-bp10q6od28cazp461mo.mysql.rds.aliyuncs.com', 3306);
LOAD MYSQL SERVERS TO RUNTIME;
SAVE MYSQL SERVERS TO DISK;

配置访问用户,这里的用户分为两种含义:

  • 前端用户:客户端用来访问 ProxySQL 的用户。
  • 后端用户:ProxySQL 用来访问后端 MySQL 节点的用户。

将后端mysql账号信息录入到 ProxySQL 中:

1
2
3
4
5
6
7
8
-- 写入用户信息
insert into mysql_users(username, password, default_hostgroup, comment) values ('root_snowpaw', 'cS5!Z3&Qy9Nz!NRI', 1, 'root用户');

-- 加载 & 持久化
# 将配置加载到RUNTIME,使其可以立马生效,并保存到disk。
load mysql users to runtime;
save mysql users to disk;

连接代理节点,访问数据库:

1
mysql -u root_snowpaw -p'cS5!Z3&Qy9Nz!NRI' -h 127.0.0.1 -P6033 -e'select @@hostname;'