作用:记录MySQL服务器启动、运行及关闭过程中的关键事件(如启动失败、权限不足、表损坏、复制错误等),是排查数据库故障的“第一手资料”。
默认路径:通常位于/var/log/mysql/error.log(部分系统可能为/var/log/mysqld.log,需通过配置确认)。
查看方法:
sudo tail -f /var/log/mysql/error.log(按Ctrl+C停止);sudo tail -n 10 /var/log/mysql/error.log;sudo grep -i "error" /var/log/mysql/error.log。作用:记录所有客户端连接信息及执行的SQL语句(包括SELECT、INSERT等),用于跟踪数据库操作历史。
默认路径:默认关闭,启用后通常位于/var/log/mysql/mysql.log(路径可通过配置自定义)。
查看方法:
sudo tail -f /var/log/mysql/mysql.log;sudo less /var/log/mysql/mysql.log(适合查看完整日志)。sudo vi /etc/my.cnf;[mysqld]
general_log = 1
general_log_file = /var/log/mysql/mysql.log
sudo systemctl restart mysqld。作用:记录执行时间超过指定阈值(默认10秒,可通过配置调整)的SQL语句,用于分析数据库性能瓶颈(如未使用索引、复杂查询)。
默认路径:默认关闭,启用后通常位于/var/log/mysql/slow-query.log(路径可通过配置自定义)。
查看方法:
sudo tail -f /var/log/mysql/slow-query.log;mysqldumpslow工具分析(需安装):
sudo mysqldumpslow -s t -t 10 /var/log/mysql/slow-query.log;sudo mysqldumpslow -g 'not_using_index' /var/log/mysql/slow-query.log。sudo vi /etc/my.cnf;[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow-query.log
long_query_time = 2 # 设置慢查询阈值为2秒
sudo systemctl restart mysqld。作用:记录所有对数据库的更改操作(如INSERT、UPDATE、DELETE),用于数据恢复、主从复制。
默认路径:位于MySQL数据目录(通常为/var/lib/mysql/),文件名格式为hostname-bin.000001(hostname为服务器名)。
查看方法:使用mysqlbinlog工具查看(需登录MySQL客户端):
sudo mysqlbinlog /var/lib/mysql/hostname-bin.000001
启用步骤:
sudo vi /etc/my.cnf;[mysqld]
log_bin = mysql-bin # 开启二进制日志
sudo systemctl restart mysqld。-- 查看错误日志路径
SHOW VARIABLES LIKE 'log_error';
-- 查看通用查询日志路径
SHOW VARIABLES LIKE 'general_log_file';
-- 查看慢查询日志路径
SHOW VARIABLES LIKE 'slow_query_log_file';
-- 查看二进制日志路径
SHOW VARIABLES LIKE 'log_bin';
sudo或root用户)。