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. 练习#
- 使用管理端连接并查询版本,截图或记录输出。
- 修改
mysql-threads为 2,加载到 runtime 并保存到 disk。 - 使用
ss验证 6032/6033 均监听,并解释其用途。 - 故意输入错误密码连接 6032,记录报错信息并说明含义。
完成以上检查即视为首次连接与基础验证通过,可进入后端 MySQL 与用户配置阶段。