*前言: proxysql对后端mysql用户进行管理
1. 用户的配置管理传递
-- 保存mysql配置至磁盘
SAVE MYSQL USERS TO DISK;
SAVE MYSQL USERS FROM MEMORY;
-- 从runtime保存至内存
SAVE MYSQL USERS TO MEMORY;
-- 从disk读取mysql用户至内存
LOAD MYSQL USERS TO MEMORY;
SAVE MYSQL USERS TO DISK;
-- 从runtime保存mysql用户信息至磁盘(作用是可以保存为加密的密码。)
SAVE MYSQL USERS FROM RUNTIME;
SAVE MYSQL USERS TO DISK
LOAD MYSQL USERS TO RUNTIME;
2. 后端mysql用户查询
select * from mysql_users;
show create table mysql_users
CREATE TABLE mysql_users (
username VARCHAR NOT NULL,
password VARCHAR,
active INT CHECK (active IN (0,1)) NOT NULL DEFAULT 1,
use_ssl INT CHECK (use_ssl IN (0,1)) NOT NULL DEFAULT 0,
default_hostgroup INT NOT NULL DEFAULT 0,
default_schema VARCHAR,
schema_locked INT CHECK (schema_locked IN (0,1)) NOT NULL DEFAULT 0,
transaction_persistent INT CHECK (transaction_persistent IN (0,1)) NOT NULL DEFAULT 1,
fast_forward INT CHECK (fast_forward IN (0,1)) NOT NULL DEFAULT 0,
backend INT CHECK (backend IN (0,1)) NOT NULL DEFAULT 1,
frontend INT CHECK (frontend IN (0,1)) NOT NULL DEFAULT 1,
max_connections INT CHECK (max_connections >=0) NOT NULL DEFAULT 10000,
attributes VARCHAR CHECK (JSON_VALID(attributes) OR attributes = '') NOT NULL DEFAULT '',
comment VARCHAR NOT NULL DEFAULT '',
PRIMARY KEY (username, backend),
UNIQUE (username, frontend)
)
字段解释:
- username:MySQL用户名
- password:MySQL密码
- active:是否启用
- use_ssl:是否使用SSL连接
- default_hostgroup:默认主机组
- default_schema:默认架构
- schema_locked:架构是否锁定,默认不启用
- transaction_persistent:事务是否持久化,默认启用
- fast_forward:是否快速转发,默认不启用
- backend:后端数据库,默认1
- frontend:前端数据库,默认1
- max_connections:最大连接数,默认10000
- attributes:属性
- comment:注释
3. mysql用户创建
3.1. mysql创建基本语法
INSERT INTO mysql_users(username,password) VALUES ('user1','password1');
3.2. 创建带默认hostgroup,默认schema的mysql用户
INSERT INTO mysql_users(username,password,default_hostgroup,default_schema) VALUES ('user2','password2',10,'dbtest1');
4. mysql用户配置更新
4.1. 更新mysql用户的最大连接数
UPDATE mysql_users SET max_connections=100 WHERE username='user2';
4.2. persistent连接
事务启动后,可能会根据查询规则将某些查询发送到不同的主机组。为了防止这种情况发生,可以启用transaction_persistent。一个例子:
UPDATE mysql_users SET transaction_persistent=1 WHERE username='user2';
SELECT username, transaction_persistent FROM mysql_users;
4.3. 用户删除
直接delete删除对应记录即可
delete from mysql_users WHERE username='user2';
最后修改时间:2024-04-08 17:51:28
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




