当前位置: 首页 > news >正文

使用ProxySql实现MySQL的读写分离

ProxySQL简介

1、ProxySQL是一款开源的使用C++编写的MySQL集群代理中间件;

2、用于在MySQL数据库和客户端之间进行负载均衡、查询缓存、故障转移和查询分发

3、它可以作为中间层插入到应用程序和数据库之间;

4、特点是高效灵活,使用简单,并且性能是所有中间件中比较优秀的。

5、在搭建好mysql的主从复制后,可以利用ProxySQL实现mysql数据库的读写分离;

主要功能

ProxySQL主要支持MySQL的主从集群和组复制集群,其主要功能有以下几个:

1、代理服务:代理后端MySQL服务,进行相关指标的监控

2、负载均衡:后端多节点的访问进行负载均衡

3、高可用:自动识别异常节点,并屏蔽异常节点,保障集群的稳定

4、读写分离:自动动态的识别读写节点,转发SQL至对应节点执行

5、数据分片:通过路由规则,进行SQL分发,达到数据分片的目的

使用原理

ProxySQL兼容MySQL协议,可以像连接MySQL一样连接ProxySQL,执行简单的SQL语句。

ProxySQL本身相关信息数据的存储使用的是sqlite3,部分MySQL语句功能没有完全兼容,所以通过 mysql client 可以正常连接并使用ProxySQL,如果通过dbeaver或者navicat等工具则无法正常使用。

当Proxysql启动后,将监听两个端口:

  • admin管理接口,默认端口为6032。该端口用于查看、配置ProxySQL

  • 接收SQL语句的接口,默认端口为6033,这个接口类似于MySQL的3306端口

读写分离是什么?

MySQL 读写分离是数据库架构优化中常见的策略,核心目的是分散数据库压力、提升系统性能和可用性,具体原因如下:

1. 缓解主库压力,提升并发能力

  • 读写请求特性不同
    业务中通常 “读多写少”(如电商商品详情查询远多于下单修改库存)。若读写都在同一数据库(主库),大量读请求会占用 CPU、内存和 I/O 资源,导致写请求(如订单提交、数据更新)响应变慢,甚至阻塞。
  • 分离后压力分流
    写操作(INSERT/UPDATE/DELETE)仅在主库执行,读操作(SELECT)分散到从库,主库无需处理大量读请求,资源可集中用于处理写事务,提升整体并发能力。

2. 提高数据可用性,降低单点风险

  • 主从架构天然冗余
    读写分离依赖主从复制,主库故障时,可将读请求切换到从库,甚至通过提升从库为主库快速恢复写能力,避免单点故障导致整个系统不可用。
  • 读服务不依赖主库
    即使主库因写操作压力过大或临时故障,从库仍能提供读服务,保证业务 “读功能” 正常运行(如用户仍能浏览商品、查询历史订单)。

3. 优化查询性能,提升用户体验

  • 从库可针对性优化
    从库仅处理读请求,可独立配置优化参数(如增大 query_cache_size、调整索引策略),甚至使用更高配置的硬件(如 SSD 提升读 I/O),专门提升查询速度。
  • 就近访问
    多从库架构中,可将从库部署在不同地域,让用户就近访问读库,减少网络延迟(如国内用户访问国内从库,海外用户访问海外从库)。

4. 便于数据备份和分析

  • 从库可承担备份任务
    直接在主库执行备份会消耗资源,影响业务;而从库可在非高峰期执行备份(如 mysqldump 或物理备份),不干扰主库正常读写。
  • 从库用于数据分析
    数据分析(如报表生成、数据挖掘)通常需要执行复杂、耗时的查询,在从库执行可避免占用主库资源,防止业务受影响。

主要步骤如下(大纲一个参考,下面有具体的配置,这里不要着急跟着做):

主库ip:1.100

从库ip:1.101

1. 安装 ProxySQL

  • 2. 配置 ProxySQL 的基本运行参数

ProxySQL 的配置文件默认是/etc/proxysql.cnf ,主要配置项包括:

  • 监听地址和端口:通过mysql-proxy-addressmysql-proxy-port配置 ProxySQL 监听的 IP 地址和端口,比如监听本机 3306 端口,可设置mysql-proxy-address=0.0.0.0mysql-proxy-port=3306 。
  • 管理接口配置:配置管理接口地址和端口,如admin-address=127.0.0.1admin-port=6032,用于通过 Admin 接口对 ProxySQL 进行配置管理。

3. 启动 ProxySQL 服务

可以通过systemctl status proxysql(或service proxysql status )检查服务是否正常运行。

4. 连接到 ProxySQL 的管理接口

使用 MySQL 客户端连接到 ProxySQL 的管理接口(默认端口 6032),例如:

mysql -uadmin -p -h 127.0.0.1 -P6032

首次登录,密码为空,登录后可以修改密码:

SET admin-admin_credentials='new_password';
LOAD MYSQL VARIABLES TO RUNTIME;
SAVE MYSQL VARIABLES TO DISK;

5. 配置后端 MySQL 服务器信息

  • 添加 MySQL 服务器到主机组
INSERT INTO mysql_servers (hostgroup_id, hostname, port) VALUES (1, '192.168.1.100', 3306); -- 假设这是主库,hostgroup_id设为1
INSERT INTO mysql_servers (hostgroup_id, hostname, port) VALUES (2, '192.168.1.101', 3306); -- 假设这是从库,hostgroup_id设为2
LOAD MYSQL SERVERS TO RUNTIME;
SAVE MYSQL SERVERS TO DISK;
  • 设置负载均衡策略:可以通过mysql_replication_hostgroups表设置主从复制关系,
  • 告诉 ProxySQL 哪个是主库主机组,哪个是从库主机组:比如:
INSERT INTO mysql_replication_hostgroups (writer_hostgroup, reader_hostgroup, comment) VALUES (1, 2, 'Main replication group');
LOAD MYSQL SERVERS TO RUNTIME;
SAVE MYSQL SERVERS TO DISK;

6. 配置用户

在 ProxySQL 中配置允许连接的用户,这些用户会被映射到后端 MySQL 服务器的用户:

INSERT INTO mysql_users (username, password, default_hostgroup) VALUES ('app_user', 'password', 1); -- 假设应用用户默认连主库
LOAD MYSQL USERS TO RUNTIME;
SAVE MYSQL USERS TO DISK;

7. 配置查询规则

可以设置查询路由规则,比如将读请求路由到从库,写请求路由到主库:

INSERT INTO mysql_query_rules (rule_id, active, match_digest, destination_hostgroup, apply) 
VALUES (1, 1, '^SELECT.*$', 2, 1); 
-- 匹配SELECT开头的查询,路由到从库(hostgroup_id 2)INSERT INTO mysql_query_rules (rule_id, active, match_digest, destination_hostgroup, apply) 
VALUES (2, 1, '^(INSERT|UPDATE|DELETE).*$', 1, 1);-- 匹配增删改,路由到主库(hostgroup_id 1)LOAD MYSQL QUERY RULES TO RUNTIME;
SAVE MYSQL QUERY RULES TO DISK;

8. 测试 ProxySQL

使用应用程序或 MySQL 客户端,通过 ProxySQL 的监听地址和端口(如 3306 )连接,执行读写操作,检查是否按照预期路由到后端 MySQL 服务器。

在实际生产环境中,还需要考虑监控 ProxySQL 的运行状态(如连接数、查询吞吐量等)、进行性能调优(如缓存配置、连接池大小调整 )以及高可用部署等方面。

实验:使用ProxySql实现MySQL的读写分离

1、读写分离,简单地说是把对数据库的读和写操作分开,以对应不同的数据库服务器;

2、主数据库提供写操作,从数据库提供读操作,这样能有效地减轻单台数据库的压力;

3、基于mysql主从复制,实现读写分离前需要先配置好主从复制。

IP角色软件
192.168.8.100MasterMySQL,ProxySQL
192.168.8.101SlaveMySQL

安装proxysql

CentOS7安装proxysql

前提,你已经做完了主从复制!!!可以使用gtid这种类型的。

# 配置官方yum源,或直接下载rpm包(下载地址:https://github.com/sysown/proxysql/releases)
官网可以看安装过程:https://proxysql.com/documentation/installing-proxysql/
这里baseurl我试了很多,因为有的不能用?不晓得,我把我试出来的一个我在用的写上去了。
vim  /etc/yum.repos.d/proxysql.repo
[proxysql_repo]
name=ProxySQL repository
baseurl=https://repo.proxysql.com/ProxySQL/proxysql-2.7.x/centos/$releasever
gpgcheck=1
gpgkey=https://repo.proxysql.com/ProxySQL/proxysql-2.7.x/repo_pub_key
sslverify=false#yum安装proxysql 
yum clean all
yum makecache
yum install proxysql安装如果报错的话,你进/etc/yum.repos.d/proxysql.repo 这个配置文件里面 看一下是不是有东西不对的
Ubuntu22.04安装proxysql
# ubuntu下添加源 可以直接复制 完成 不会报错:apt install -y --no-install-recommends lsb-release wget apt-transport-https ca-certificates gnupgwget -O - 'https://repo.proxysql.com/ProxySQL/proxysql-2.5.x/repo_pub_key' | apt-key add - 
echo deb https://repo.proxysql.com/ProxySQL/proxysql-2.5.x/$(lsb_release -sc)/ ./ | tee /etc/apt/sources.list.d/proxysql.listwget -nv -O /etc/apt/trusted.gpg.d/proxysql-2.5.x-keyring.gpg 'https://repo.proxysql.com/ProxySQL/proxysql-2.5.x/repo_pub_key.gpg'# 命令下载装:
apt-get update
apt-get install proxysql

启动proxysql服务并加入开机自启通过管理界面配置ProxySQL

启动proxysql服务并加入开机自启

systemctl start proxysql
systemctl enable proxysql

通过管理界面配置ProxySQL

使用mysql客户端,并使用以下admin凭据在本地端口(6032)上进行连接。默认账号密码admin:admin

mysql -u admin -padmin -h 127.0.0.1 -P 6032Admin> show databases;

如果登录失败

排错

1.先看服务启动了

没检查 ProxySQL 状态:systemctl status proxysql,若未启动则启动:systemctl start proxysql

2。端口 / IP 错误
确认管理端口是否为 6032(可在配置文件 /etc/proxysql.cnf 中查看 admin-admin_credentials 附近的配置),以及目标 IP 是否正确。

3.防火墙限制
确保服务器防火墙允许 6032 端口的连接(如 firewall-cmd --add-port=6032/tcp --permanent 并重启防火墙)。

4.密码错误
若修改过默认密码,需用正确密码登录;若忘记密码,可通过配置文件重置(修改 /etc/proxysql.cnf 中 admin-admin_credentials 字段,重启服务生效)。

看配置文件内容,这里不需要更改

vim /etc/proxysql.cnfadmin_variables=
{admin_credentials="admin:admin"        #定义管理端的登录账号密码
#       mysql_ifaces="127.0.0.1:6032;/tmp/proxysql_admin.sock"  #管理端监听的地址和端口mysql_ifaces="0.0.0.0:6032"    #0.0.0.0 表示监听服务器所有网卡的 6032 端口,允许外部机器通过 6032 端口连接管理端
#       refresh_interval=2000    #若启用,ProxySQL 会每隔 2000 毫秒(2 秒 )自动从数据库 / 配置源同步配置
#       debug=true    #开启调试模式
}

image-20240910171438970

 这些库的含义:

  • main:内存配置数据库。使用此数据库,可以很容易地以自动化方式查询和更新ProxySQL的配置。使用从内存中加载MYSQL用户和类似命令,可以将存储在此处的配置传播到运行时ProxySQL使用的内存数据结构。
  • disk:"main"的基于磁盘的镜像。在重新启动过程中,“ main”不会保留,而是根据启动标志以及磁盘上是否存在数据库从“磁盘”数据库或从配置文件加载。
  • stats:包含从代理的内部功能收集的运行时指标。指标示例包括每个查询规则匹配的次数,当前正在运行的查询等。
  • monitor:包含与ProxySQL连接的后端服务器相关的监视指标。度量标准示例包括连接到后端服务器或对其进行ping操作的最小和最大时间。

ProxySQL运行机制

  • runtime:运行中使用的配置文件
  • memory:提供用户动态修改配置文件
  • disk:将修改的配置保存到磁盘SQLit表中(即:proxysql.db)

proxysql

ProxySQL账号

ProxySQL默认的管理员账户和密码为admin:admin,但是这个默认的用户只能在本地使用。如果想要远程连接到ProxySQL,例如用windows上的navicat连接Linux上的ProxySQL管理接口,必须自定义一个管理员账户。

例如:添加一个root:root123的用户和密码

Admin> select @@admin-admin_credentials;     #查询当前 ProxySQL 中配置的管理员认证凭据
+---------------------------+
|@@admin-admin_credentials  |
+---------------------------+
|admin:admin                |
+---------------------------+
1 row in set (0.001 sec)Admin> set admin-admin_credentials='admin:admin;root:root123';#修改管理员认证凭据,新增一组 root:root123 的账号密码。
Query OK, 1 row affected (0.000 sec)Admin> select @@admin-admin_credentials;
#再次查询管理员认证凭据,确认修改是否生效
+---------------------------+
|@@admin-admin_credentials  |
+---------------------------+
| admin:admin;root:root123  |
+---------------------------+
1 row in set (0.001 sec)Admin> load admin variables to runtime; # 使修改立即生效
Query OK, 0 rows affected (0.000 sec)Admin> save admin variables to disk;  # 使修改永久保存到磁盘
Query OK, 35 rows affected (0.004 sec)

配置内容

使用proxysql,主要需要完成以下几项内容的配置:

1、配置监控账号。监控账号用于检测后端mysql实例是否健康(是否能连接、复制是否正常、复制是否有延迟等);

2、到后端mysql实例创建监控账号;

3、配置后端mysql实例连接信息。实例连接信息存储在mysql_servers表;

4、配置连接proxysql和后端实例的账号。账号信息存储在mysql_users表;

5、配置查询路由信息。路由信息存储在mysql_query_rules表;

6、配置后端mysql集群信息。根据后端mysql集群架构,配置分别存储在mysql_replication_hostgroups、mysql_group_replication_hostgroups、runtime_mysql_galera_hostgroups、runtime_mysql_aws_aurora_hostgroups等表中;

7、根据具体需要,调优相关参数。参数存储在global_variables表;

1.在主节点的MySQL中创建监控用户 在mysql中

CREATE USER 'monitor'@'%' IDENTIFIED BY 'monitor';
GRANT USAGE, REPLICATION CLIENT ON *.* TO 'monitor'@'%';在数据库中创建一个用户
用户名:monitor
可连接主机:% 表示允许从任意主机连接(也可指定具体 IP,如 'monitor'@'192.168.1.%' 限制网段 )
密码:monitor(用户连接时需用该密码认证 )给刚创建的 monitor 用户授权
USAGE:是一种 “空权限”,表示该用户有连接数据库的基本权限(但无实际操作权限,常作为基础授权,后续可叠加其他权限 )
REPLICATION CLIENT:允许该用户执行与复制相关的操作(如 SHOW MASTER STATUS、SHOW SLAVE STATUS ,用于查看主从复制状态 )
ON *.*:表示对所有数据库(* 第一个 * )的所有表(第二个 * )生效,也可限定具体库表(如 ON mydb.* 只对 mydb 库授权 )

2.将监控用户加入到proxysql中 在proxysql中

UPDATE global_variables SET variable_value='monitor' WHERE variable_name='mysql-monitor_username';
UPDATE global_variables SET variable_value='monitor' WHERE variable_name='mysql-monitor_password';在 global_variables 表中,将名为 mysql-monitor-username 的变量值设置为 'monitor',即配置 ProxySQL 监控 MySQL 时使用的用户名是 monitor。在 global_variables 表中,将名为 mysql-monitor-password 的变量值设置为 'monitor',即配置 ProxySQL 监控 MySQL 时使用的密码是 monitor。在配置 ProxySQL 对后端 MySQL 服务器的监控机制,这么做的核心目的是让 ProxySQL 能够自动检测后端 MySQL 节点的健康状态和复制延迟,确保读写分离等功能可靠运行

3.将Master和slave节点添加到mysql_servers表中

注意:是在proxysql中操作

-- Master主节点
INSERT INTO mysql_servers(hostgroup_id,hostname,port,weight,comment) VALUES (1,'192.168.8.100',3306,1,'Write group');-- slave节点
INSERT INTO mysql_servers(hostgroup_id,hostname,port,weight,comment) VALUES (2,'192.168.8.101',3306,1,'Read group');-- 保存
LOAD MYSQL SERVERS TO RUNTIME;
SAVE MYSQL SERVERS TO DISK;如果你写错了你想删掉
-- 查看所有节点,找到目标节点的标识(如 hostname、port、hostgroup_id)
SELECT * FROM mysql_servers;-- 精确筛选(例如删除 hostgroup_id=2 中 IP 为 192.168.1.102 的节点)先找到这个单独筛选出来
SELECT * FROM mysql_servers WHERE hostgroup_id=2 AND hostname='192.168.1.102';DELETE FROM mysql_servers WHERE 条件;-- 用查询到的标识作为条件,确保只删目标节点 条件就是上面那条命令的where后面的内容SELECT * FROM mysql_servers;
在查询看是不是真的删了
LOAD MYSQL SERVERS TO RUNTIME;
SAVE MYSQL SERVERS TO DISK;

4.查看添加的mysql集群

SELECT * FROM mysql_servers;

如果这里的status不是online,那么就需要

排错

                      还是进入proxysql管理端

-- 1. 先确保配置表(disk 层)中该节点状态正确(若之前被修改过)
UPDATE mysql_servers 
SET status='ONLINE' 
WHERE hostgroup_id=2 AND hostname='192.168.8.101' AND port=3306;  (这里的ip是从服务端的ip)-- 2. 加载配置到运行时(覆盖 runtime 层的 SHUNNED 状态)
LOAD MYSQL SERVERS TO RUNTIME;-- 3. 持久化到磁盘(避免重启后恢复为错误状态)
SAVE MYSQL SERVERS TO DISK;二。看网络是否通畅,防火墙也要关最后再检查一下 SELECT * FROM mysql_servers;
都变成online就可以了
如果还是不行 可以考虑重启一下服务,可能是因为有缓存

5.在MySQL主从节点上创建用户,赋予权限,并将其存储到代理服务器中。

主服务器和从服务器上都创用户。

-- 在Master节点和slave节点上创建adm用户,设置为管理员权限。
CREATE USER 'adm'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'adm'@'%';-- 在Master节点和slave节点上创建用户read,并设置权限为只读。
CREATE USER 'read'@'%' IDENTIFIED BY '123456';
GRANT SELECT ON *.* TO 'read'@'%';
FLUSH PRIVILEGES;如果创建失败,可能是你之前创过同名用户,需要把用户删掉
drop user 'adm'@'%';
drop user 'read'@'%';

6.在proxysql上添加用户

-- 在proxysql上添加用户
INSERT INTO mysql_users(username,password,default_hostgroup) VALUES ('adm','123456',1);
INSERT INTO mysql_users(username,password,default_hostgroup) VALUES ('read','123456',2);-- 保存
LOAD MYSQL USERS TO RUNTIME;
SAVE MYSQL USERS TO DISK;select hostgroup_id, hostname, port,status from runtime_mysql_servers;在 ProxySQL 中注册一个名为 read、密码为 123456 的用户,并指定其默认访问的后端数据库主机组为 ID 2。这样,当客户端使用 read 用户通过 ProxySQL 连接数据库时,ProxySQL 会默认将请求转发到主机组 2 中的 MySQL 服务器(通常这类主机组可能由从库组成,用于分担读压力)

7.在proxysql上配置读写规则

参数介绍:

  • rule_id为1,表示规则的唯一标识符。
  • active为1,表示规则处于激活状态。
  • match_digest为'^SELECT.*FROM UPDATE$',表示匹配查询语句,以SELECT开头,中间可以有任意字符,以FROM UPDATE结尾。
  • destination_hostgroup为1,表示匹配成功后,将查询请求发送到hostgroup 1。
  • apply为1,表示应用该规则。
INSERT INTO mysql_query_rules (rule_id,active,match_digest,destination_hostgroup,apply) VALUES (1,1,'^SELECT.*FROM UPDATE$',1,1);
INSERT INTO mysql_query_rules (rule_id,active,match_digest,destination_hostgroup,apply) VALUES (2,1,'^SELECT',2,1);
INSERT INTO mysql_query_rules (rule_id,active,match_digest,destination_hostgroup,apply) VALUES (3,1,'^SHOW',2,1);
-- 保存规则
LOAD MYSQL QUERY RULES TO RUNTIME;
SAVE MYSQL QUERY RULES TO DISK;
-- 查看规则
select rule_id,match_digest,destination_hostgroup,apply from mysql_query_rules order by rule_id;

8.测试能否正常读取

直接在ProxySQL所在服务器的Linux命令行执行下列命令

mysql -uread -p123456 -h 127.0.0.1 -P6033 -e "SELECT @@hostname,@@port"# 在代理服务器上执行读操作
mysql -uread -p123456 -h 127.0.0.1 -P6033 -e "show databases;"# 执行创建操作,测试效果
mysql -uadm -p123456 -h 127.0.0.1 -P6033 -e "create database test2;"# 再次查询
mysql -uread -p123456 -h 127.0.0.1 -P6033 -e "show databases;"

在代理服务器中查询执行记录

# 可以看到proxysql将不同的请求分别发送给了不同的服务器处理,读取发送给slave节点,写入和删除发送给Master节点。
-- 在proxysql服务器上执行
mysql -uadmin -padmin -h127.0.0.1 -P6032
select hostgroup,digest_text from stats_mysql_query_digest\G;## ProxySQL保存配置:-- 修改后重新加载服务并保存配置,防止重启服务器后配置丢失。-- 重新加载并保存服务器设置
LOAD MYSQL SERVERS TO RUNTIME;
SAVE MYSQL SERVERS TO DISK;-- 重新加载并保存查询设置
LOAD MYSQL QUERY RULES TO RUNTIME;
SAVE MYSQL QUERY RULES TO DISK;-- 重新加载并保存用户设置
LOAD MYSQL USERS TO RUNTIME;
SAVE MYSQL USERS TO DISK;-- 重新加载并保存变量设置
LOAD MYSQL VARIABLES TO RUNTIME;
SAVE MYSQL VARIABLES TO DISK;

重置配置方法

如果你遇到 ProxySQL 配置错误,需要删除或重置配置,通常可以按照以下步骤操作:

1. 删除错误配置

1.连接到 ProxySQL 数据库:

使用 mysql 命令行工具或其他 MySQL 客户端连接到 ProxySQL 实例。默认情况下,ProxySQL 的管理界面监听在 3306 端口(也可能是其他端口,取决于你的配置)。

mysql -u admin -p -h 127.0.0.1 -P 6032

这里 6032 是 ProxySQL 默认的管理端口,admin 是默认的管理用户。

2.查看当前配置: 在管理控制台中,你可以使用以下命令查看当前配置:

SELECT * FROM mysql_servers;
SELECT * FROM mysql_users;

3.删除或修改错误配置: 假设你要删除某个错误的服务器配置:

DELETE FROM mysql_servers WHERE hostname='错误的主机名';

对于用户配置,可以用类似的方式删除:

DELETE FROM mysql_users WHERE username='错误的用户名';

4.应用更改: 删除或修改配置后,记得应用更改到 ProxySQL 配置:

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

对于用户配置:

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

2. 重置 ProxySQL 配置

方法一:可以执行初始化命令:

proxysql --initial

方法二:也可以删除所有配置并重新加载:

1.删除所有配置:

-- 删除所有的 MySQL 服务器配置
DELETE FROM mysql_servers;-- 删除所有的 MySQL 用户配置
DELETE FROM mysql_users;-- 删除所有的 MySQL 规则配置
DELETE FROM mysql_query_rules;-- 删除所有的 MySQL 监控配置
DELETE FROM stats_mysql_status;

2.重新加载配置:

-- 将删除的配置应用到运行时
LOAD MYSQL SERVERS TO RUNTIME;
LOAD MYSQL USERS TO RUNTIME;
LOAD MYSQL QUERY RULES TO RUNTIME;-- 将运行时配置保存到磁盘
SAVE MYSQL SERVERS TO DISK;
SAVE MYSQL USERS TO DISK;
SAVE MYSQL QUERY RULES TO DISK;## 退出重启服务
sudo systemctl restart proxysql

3. 其他检查

确保 ProxySQL 配置文件(通常是 proxysql.cnf)中没有错误,并检查任何可能的日志文件来确认问题的具体细节。

这些步骤应该能帮助你解决 ProxySQL 配置错误。如果问题依然存在,可能需要更详细地检查 ProxySQL 的日志或配置文档。

http://www.xdnf.cn/news/1248751.html

相关文章:

  • ubuntu24安装vulkan-sdk
  • 一文搞定JavaServerPages基础,从0开始写一个登录与人数统计页面
  • Rust进阶-part4-智能指针2
  • 力扣106:从中序与后序遍历序列构造二叉树
  • VUE+SPRINGBOOT从0-1打造前后端-前后台系统-登录实现
  • Redis里面什么是sdshdr,可以详细介绍一下吗?
  • Linux lvm逻辑卷管理
  • 跑yolov5的train.py时,ImportError: Failed to initialize: Bad git executable.
  • 【Linux】特效爆满的Vim的配置方法 and make/Makefile原理
  • 一种红外遥控RGB灯带控制器-最低价MCU
  • MySQL间隙锁在查询时锁定的范围
  • 前端遇到页面卡顿问题,如何排查和解决?
  • 【运维部署篇】OpenShift:企业级容器应用平台全面解析
  • Spring 的优势
  • Springboot集成Log4j2+MDC串联单次请求的日志
  • HBM Basic(VCU128)
  • 《Python基础》第3期:使用PyCharm编写Hello World
  • Leetcode-2080区间内查询数字的频率
  • 查看部署在K8S服务的资源使用情况
  • LOOP Finance:一场 Web3 共和国中的金融制度实验
  • 创维智能融合终端DT741_移动版_S905L3芯片_安卓9_线刷固件包
  • Linux驱动24 --- RkMedia 视频 API 使用
  • 前端保持和服务器时间同步的方法【使用vue3举例】
  • Tasks and Deadlines(Sorting and Searching)
  • Mysql-事务
  • Nginx入门:高性能Web服务器详解
  • 【图像算法 - 09】基于深度学习的烟雾检测:从算法原理到工程实现,完整实战指南
  • Claude Code实战体验:AI智能编程助手如何重塑开发工作流?
  • 2. JS 有哪些数据类型
  • Linux的NFS与Autofs配置指南