Ubuntu 下 SQLAdmin 日志管理
一 概念澄清与定位
- sqladmin 并非标准命令或软件名,常见有两种指代:
- 指代 MySQL/MariaDB 的管理工具 mysqladmin(用于状态/变量管理,日志需查看数据库或系统日志)。
- 指代某个名为 SQLAdmin 的第三方服务/应用(若以服务运行,可用 systemd 管理日志)。
- 若你使用的是 mysqladmin,它本身不直接提供“查看日志文件”的功能,需通过数据库错误日志、系统日志或 mysql 客户端查询相关变量/表来获取日志信息。
二 作为系统服务运行时的日志管理
- 确认服务名并查看状态:
- 检查是否存在服务:systemctl list-units --type=service | grep -i sqladmin
- 查看状态与最近日志:sudo systemctl status sqladmin;sudo journalctl -u sqladmin -xe
- 实时查看与历史过滤:
- 实时跟踪:sudo journalctl -u sqladmin -f
- 按时间范围:sudo journalctl -u sqladmin --since “2025-11-29 00:00:00” --until “2025-11-30 23:59:59”
- 持久化与轮转建议:
- 若服务使用文件日志(而非仅 journal),为 /var/log/sqladmin/*.log 配置 logrotate(见第四部分示例)。
- 避免重复记录:若已用 journal 持久化,服务配置中尽量关闭文件日志或将级别设为合适的 INFO/WARN。
- 服务控制(便于排障):sudo systemctl restart sqladmin;sudo systemctl enable sqladmin。
三 若实际是 mysqladmin 或管理 MySQL/MariaDB
- 错误日志定位与查看:
- 查找错误日志路径:sudo grep -i log_error /etc/mysql/my.cnf /etc/mysql/mysql.conf.d/*.cnf
- 实时查看:sudo tail -f /var/log/mysql/error.log(MariaDB 常见为 /var/log/mariadb/mariadb.log)
- 通用查询日志与慢查询日志:
- 确认是否开启:mysql -u root -p -e “SHOW VARIABLES LIKE ‘general_log%’; SHOW VARIABLES LIKE ‘slow_query_log%’;”
- 动态开启(示例):mysql -u root -p -e “SET GLOBAL general_log=ON; SET GLOBAL slow_query_log=ON; SET GLOBAL long_query_time=1;”
- 查看内容:sudo tail -f /var/log/mysql/query.log;sudo tail -f /var/log/mysql/slow-query.log
- 通过表查看(通用日志):mysql -u root -p -e “SELECT * FROM mysql.general_log ORDER BY event_time DESC LIMIT 100;”
- 使用 mysqladmin 获取运行状态(不等同于查看日志文件):mysqladmin -u root -p status
- 说明:mysqladmin 主要用于状态/变量管理,日志查看依赖数据库错误日志、查询日志或系统日志。
四 日志轮转与保留策略 logrotate 示例
- 若 SQLAdmin 作为服务写入文件日志(如 /var/log/sqladmin/sqladmin.log),建议创建 logrotate 配置:
- 测试与生效:
- 手动测试:sudo logrotate -d /etc/logrotate.d/sqladmin(干跑)
- 强制执行:sudo logrotate -f /etc/logrotate.d/sqladmin
- 提示:若你的应用仅使用 journald,无需文件轮转,可通过 journalctl 的 --vacuum-time / --vacuum-size 控制保留策略。