14.3.5 首次连接与基础验证

本节目标是完成对 ProxySQL 的首次连接与运行状态验证,确认管理端与数据端可用,为后续配置奠定基础,并掌握基础排错与操作习惯。

1. 管理端口首次连接#

管理端口(6032)用于管理数据库(main)的配置读写。

原理草图(管理端与数据端分离):

文章图片

连接命令示例:

# 使用默认账户(以安装包为准)
mysql -uadmin -padmin -h127.0.0.1 -P6032

进入后验证版本与全局变量:

SELECT @@version;
SELECT * FROM global_variables LIMIT 5;
SELECT * FROM global_status LIMIT 5;

命令解释:
- @@version:确认 ProxySQL 版本与是否可正常响应查询。
- global_variables:管理配置项(端口、线程等)。
- global_status:运行时状态指标。

2. 数据端口连通性验证#

数据端口(6033)用于业务连接;首次未配置后端与用户时,认证失败属于正常现象。

端口监听检查:

# 预期输出包含 LISTEN 6033
ss -lntp | grep 6033

连接测试(期望报错但能建立连接):

# 可能出现 "Access denied""No MySQL server available" 的提示
mysql -uroot -p -h127.0.0.1 -P6033

命令解释:
- ss -lntp:确认进程监听端口。
- 数据端连接报错但端口可用,说明数据端已启动。

3. 基础内置表可读性检查#

确认管理库表结构可读写,便于后续配置。

-- 查看主要表
SHOW TABLES;

-- 读取后端服务器配置表
SELECT * FROM mysql_servers;

-- 读取用户表
SELECT * FROM mysql_users;

预期效果:
- 表存在并可查询,说明管理端数据库可读。

4. 服务运行状态验证#

从系统层面验证服务与日志。

# systemd 服务状态
systemctl status proxysql

# 进程检查
ps -ef | grep proxysql | grep -v grep

# 查看最近日志(路径以实际配置为准)
journalctl -u proxysql -n 50 --no-pager

命令解释:
- systemctl status:确认 active/running。
- journalctl:排查启动失败、端口占用、配置错误。

5. 管理配置生效与保存机制理解#

ProxySQL 配置的三层结构:
- 内存(runtime)
- 管理库(disk)
- 配置文件(启动读取)

示例:修改管理变量并生效与保存

-- 查看当前线程数
SELECT variable_name, variable_value 
FROM global_variables 
WHERE variable_name='mysql-threads';

-- 修改并加载到运行时
UPDATE global_variables 
SET variable_value='4' 
WHERE variable_name='mysql-threads';

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

-- 再次验证
SELECT variable_name, variable_value 
FROM global_variables 
WHERE variable_name='mysql-threads';

命令解释:
- LOAD ... TO RUNTIME:写入内存生效。
- SAVE ... TO DISK:持久化到管理库。

6. 常见问题排错清单#

  • 无法连接 6032:确认服务运行、端口监听与防火墙。
systemctl status proxysql
ss -lntp | grep 6032
  • 认证失败:确认用户名/密码与默认账号是否被修改。
SELECT username, password, active FROM mysql_users;
  • 管理库损坏/无法访问:检查数据目录与文件权限。
ls -l /var/lib/proxysql/

7. 练习#

  1. 使用管理端连接并查询版本,截图或记录输出。
  2. 修改 mysql-threads 为 2,加载到 runtime 并保存到 disk。
  3. 使用 ss 验证 6032/6033 均监听,并解释其用途。
  4. 故意输入错误密码连接 6032,记录报错信息并说明含义。

完成以上检查即视为首次连接与基础验证通过,可进入后端 MySQL 与用户配置阶段。