在Ubuntu上管理MySQL日志可以通过以下几种技巧进行:
/var/log/mysql/error.log
。你可以使用 sudo tail -f /var/log/mysql/error.log
命令实时查看错误日志。/var/log/mysql/mysql-query.log
。要启用通用查询日志,可以编辑MySQL配置文件 /etc/mysql/my.cnf
,在 [mysqld]
部分添加或修改 general-log
选项:[mysqld] general-log = 1 general-log-file = /path/to/your/custom/query.log
然后重启MySQL服务:sudo systemctl restart mysql
。SET GLOBAL slow_query_log 'ON'; SET GLOBAL long_query_time 2; -- 设置慢查询时间阈值,单位为秒 SET GLOBAL slow_query_log_file '/var/log/mysql/slow-queries.log';
然后可以使用 sudo tail -f /var/log/mysql/slow-queries.log
命令实时查看慢查询日志。SHOW BINARY LOGS;
然后,查看某个具体的二进制日志文件,例如:sudo mysqlbinlog /var/log/mysql/mysql-bin.000001
。使用Logrotate是一个强大的日志管理工具,可以自动轮转、压缩、删除和发送日志文件。默认情况下,Logrotate会每天运行一次,对 /var/log/mysql
目录下的日志文件进行轮转。你可以编辑 /etc/logrotate.d/mysql
配置文件来自定义轮转规则。
/var/log/journal/
目录下。可以使用以下命令清理日志: sudo journalctl --vacuum-time=1w
sudo journalctl --vacuum-size=500M
使用pt-query-digest是一个强大的工具,用于分析MySQL查询日志、慢查询日志和二进制日志。你可以通过以下命令安装:sudo apt-get install percona-toolkit
,然后使用 pt-query-digest
分析慢查询日志:pt-query-digest /var/log/mysql/slow.log
。
在MySQL配置文件 /etc/mysql/my.cnf
中,可以通过 log-error
和 general-log-file
参数指定错误日志和通用查询日志的位置。还可以通过 expire_logs_days
参数设置二进制日志的自动清理。