MySQL在Debian中的日志查看方法
Debian系统中,MySQL的日志文件主要存储在/var/log/mysql/目录下,不同类型的日志对应不同文件(需确保日志功能已启用):
/var/log/mysql/error.log。/var/log/mysql/query.log或/var/log/mysql/mysql.log。long_query_time阈值(默认10秒)的SQL语句(需手动启用),默认路径为/var/log/mysql/slow.log或/var/log/mysql/slow-query.log。/var/lib/mysql/目录下,文件名格式为mysql-bin.XXXXXX。tail -f命令实时监控日志文件的新增内容(适用于错误日志、查询日志等),例如:sudo tail -f /var/log/mysql/error.log # 查看错误日志
sudo tail -f /var/log/mysql/query.log # 查看通用查询日志(需启用)
sudo tail -f /var/log/mysql/slow.log # 查看慢查询日志(需启用)
cat或less命令查看日志文件的完整内容(适用于小文件),例如:sudo cat /var/log/mysql/error.log # 查看错误日志全部内容
sudo less /var/log/mysql/query.log # 分页查看通用查询日志(按q退出)
journalctl命令查看MySQL服务的所有日志(包括错误、警告等),例如:sudo journalctl -u mysql.service # 查看MySQL服务所有日志
sudo journalctl -u mysql.service -b # 查看上次启动后的日志
sudo journalctl -u mysql.service -p err # 仅查看错误日志
若通用查询日志或慢查询日志未启用,需通过SQL命令或配置文件开启:
SET GLOBAL general_log = 'ON'; -- 开启通用查询日志
SET GLOBAL general_log_file = '/var/log/mysql/query.log'; -- 设置日志路径
SET GLOBAL slow_query_log = 'ON'; -- 开启慢查询日志
SET GLOBAL slow_query_log_file = '/var/log/mysql/slow.log'; -- 设置日志路径
SET GLOBAL long_query_time = 2; -- 设置慢查询阈值为2秒
/etc/mysql/mysql.conf.d/mysqld.cnf或/etc/mysql/my.cnf),在[mysqld]部分添加以下配置:[mysqld]
general_log = 1 # 开启通用查询日志
general_log_file = /var/log/mysql/query.log # 设置日志路径
slow_query_log = 1 # 开启慢查询日志
slow_query_log_file = /var/log/mysql/slow.log # 设置日志路径
long_query_time = 2 # 设置慢查询阈值为2秒
修改后重启MySQL服务使配置生效:sudo systemctl restart mysql.service
mysql用户,权限设置为640(防止未经授权访问),例如:sudo chown mysql:mysql /var/log/mysql/*.log
sudo chmod 640 /var/log/mysql/*.log
logrotate工具自动轮转日志(配置文件位于/etc/logrotate.d/mysql),避免日志文件过大占用磁盘空间。可通过以下命令手动触发轮转:sudo logrotate -f /etc/logrotate.d/mysql
SHOW VARIABLES LIKE '%log%'; -- 查看所有日志相关配置
SHOW VARIABLES LIKE 'log_error'; -- 查看错误日志路径
SHOW VARIABLES LIKE 'general_log_file'; -- 查看通用查询日志路径
SHOW VARIABLES LIKE 'slow_query_log_file'; -- 查看慢查询日志路径
通过以上方法,可快速定位并查看Debian系统中MySQL的各类日志,帮助监控数据库运行状态、排查问题及优化性能。