MySQL 中默认是没有开启日志记录的,所以需要手动修改配置文件开启日志。而在 MySQL 中我们需要关心的有三类日志:
The error log
错误日志,这一类日志包括了服务器运行时,包括启动和停止时的错误等信息The General Query Log
查询日志,通常是 mysqld 进行连接,断开连接,查询等等操作的日志The Slow Query Log
慢查询日志,包含了慢查询的 SQL 语句
在配置中没有开启任何日志记录时,MySQL 相关的日志在 /var/log/syslog
中。之所以关注到 MySQL 的日志是因为发现服务器上 MySQL 间隔一定时间就自动重启,想要找出原因,开启日志之后观察了一段时间,初步排查可能是 clamav 执行时占用内存导致 MySQL 内存不足挂掉。现在把所有的日志都开启观察一段时间再看看。
开启日志
修改 /etc/mysql/my.cnf
中的配置,开启 MySQL 服务器日志,不同发行版的配置地址可能不相同:
[mysqld_safe]
log_error=/var/log/mysql/error.log
[mysqld]
log_error=/var/log/mysql/error.log
开启查询日志
general_log_file = /var/log/mysql/mysql.log
general_log = 1
开启慢查询日志
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes
修改保存配置之后需要重新启动 mysql
sudo service mysql restart
在运行时开启日志
如果不想重启服务器,可以在运行时,通过 mysql client 登录之后 mysql -u root -p
然后执行命令来开启:
SET GLOBAL general_log = 'ON';
SET GLOBAL slow_query_log = 'ON';