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 是最常见原因。

练习与验证#

  1. 安装后完成服务自启设置,重启系统后验证 proxysql 是否自动启动。
  2. 修改管理端口为 6034,重启后用 ss -lntp 验证端口变化。
  3. 故意修改数据目录权限为只读,观察启动失败日志,并修复权限恢复启动。
  4. 新建一个管理用户(如 ops),保存至磁盘并重启验证。