14.3.2 初始化与服务管理
初始化目标与运行原理#
初始化时会生成运行时库(内存)与持久化库(磁盘),服务由 systemd 管理并监听管理端口与业务端口。首次启动应确保数据目录、日志目录权限正确,避免端口冲突与锁定。
初始化与服务管理示例#
1. 启动与自启#
# 1) 设置开机自启
systemctl enable proxysql
# 2) 启动服务
systemctl start proxysql
# 3) 查看运行状态
systemctl status proxysql --no-pager
命令解释
- enable:注册开机自启。
- start:立即启动服务。
- status:查看运行状态与最近日志片段。
2. 端口与进程校验#
# 检查端口监听
ss -lntp | grep -E '6032|6033'
# 检查进程与配置文件路径
ps -ef | grep -E 'proxysql|/etc/proxysql.cnf' | grep -v grep
命令解释
- ss -lntp:查看 TCP 监听端口及进程。
- ps -ef:确认进程是否使用正确配置路径。
3. 管理端口登录验证#
# 使用默认管理账户登录(示例,实际以配置为准)
mysql -u admin -padmin -h 127.0.0.1 -P 6032
# 验证版本与运行状态
SELECT @@version;
SHOW DATABASES;
命令解释
- -P 6032:连接管理端口。
- SHOW DATABASES:确认管理库可访问。
4. 持久化与加载配置#
# 载入磁盘配置到运行时
LOAD MYSQL USERS TO RUNTIME;
LOAD MYSQL SERVERS TO RUNTIME;
# 保存运行时配置到磁盘
SAVE MYSQL USERS TO DISK;
SAVE MYSQL SERVERS TO DISK;
命令解释
- LOAD ... TO RUNTIME:让配置生效。
- SAVE ... TO DISK:防止重启丢失。
配置路径与权限示例#
# 查看关键路径(示例以默认路径为准)
grep -E 'datadir|logfile|pidfile' /etc/proxysql.cnf
# 确保目录可写(以 proxysql 用户为例)
chown -R proxysql:proxysql /var/lib/proxysql /var/log/proxysql
chmod -R 750 /var/lib/proxysql /var/log/proxysql
命令解释
- grep:定位关键路径配置。
- chown/chmod:确保读写权限,避免启动失败。
常见排错与快速修复#
1. 端口冲突#
# 查找占用 6032/6033 的进程
lsof -iTCP:6032 -sTCP:LISTEN
lsof -iTCP:6033 -sTCP:LISTEN
# 终止冲突进程(谨慎)
kill -9 <PID>
排错要点:若冲突来自旧实例,需先停旧实例或修改端口。
2. 启动失败查看日志#
# systemd 日志
journalctl -u proxysql -xe --no-pager
# 业务日志(以配置文件为准)
tail -n 200 /var/log/proxysql/proxysql.log
排错要点:关注权限、配置解析错误、PID 文件不可写等提示。
3. 配置未生效#
-- 确认运行时配置是否已更新
SELECT * FROM runtime_mysql_users;
SELECT * FROM runtime_mysql_servers;
-- 若未更新,执行 LOAD/SAVE
LOAD MYSQL USERS TO RUNTIME;
SAVE MYSQL USERS TO DISK;
排错要点:修改后未执行 LOAD/SAVE 是最常见原因。
练习与验证#
- 安装后完成服务自启设置,重启系统后验证 proxysql 是否自动启动。
- 修改管理端口为 6034,重启后用
ss -lntp验证端口变化。 - 故意修改数据目录权限为只读,观察启动失败日志,并修复权限恢复启动。
- 新建一个管理用户(如
ops),保存至磁盘并重启验证。