MySQL的执行日志文件包含两种类型的记录:查询日志和慢查询日志。查询日志记录了所有执行的SQL查询语句,但是并不包含查询所返回的结果。慢查询日志则记录了所有执行时间超过阈值(默认为10秒)的查询。
在MySQL中,可以通过以下参数开启查询日志:
#启用查询日志 log-bin=mysql-bin
开启查询日志后,MySQL会将所有的查询语句记录到日志文件中。要查看查询日志,可以使用以下命令:
#查看最新的10条查询日志 sudo tail /var/log/mysql/mysql.log
对于慢查询日志,可以通过以下参数进行开启:
#启用慢查询日志 slow_query_log=1 long_query_time=1 #查询时间超过1秒就记录到慢查询日志中
开启慢查询日志后,MySQL会将执行时间超过阈值的查询记录到慢查询日志文件中。要查看慢查询日志,可以使用以下命令:
#查看最新的10条慢查询日志 sudo tail /var/log/mysql/mysql-slow.log
在开启日志文件时,需要注意几点:
首先,日志文件会占用一定的磁盘空间,因此需要定期清理。可以通过以下命令手动清理日志文件:
#删除查询日志文件 sudo rm /var/log/mysql/mysql.log #删除慢查询日志文件 sudo rm /var/log/mysql/mysql-slow.log
其次,开启日志会带来一定的性能开销,因为每次查询都会记录到日志中。如果不需要记录所有查询语句,可以通过以下命令进行过滤:
#仅记录指定数据库的查询日志 log-bin=mysql-bin binlog_do_db=mydb
最后,由于日志文件包含了所有执行的查询语句,因此其安全性需要得到关注。可以通过修改文件权限和加密文件等方式来保护日志文件。