MySQL日志默认位置取决于安装方式和配置:错误日志通常为/var/log/mysqld.log(RHEL)或/var/log/mysql/error.log(Debian),二进制日志在/var/lib/mysql/mysql-bin.*,慢查询和通用日志默认位于数据目录下,如/var/lib/mysql/hostname-slow.log;所有路径均以SHOW VARIABLES命令查得的实际值为准。

MySQL安装并启动后,日志文件默认存放在数据目录(datadir)下,但具体位置取决于安装方式(源码编译、yum/apt包安装、Docker、一键脚本等)和配置文件中的设置。不查配置,直接找日志容易出错。
查看 MySQL 实际日志路径的命令方法
登录 MySQL 后执行以下语句,能准确获取当前生效的日志路径:
-
错误日志(error log):
SHOW VARIABLES LIKE 'log_error'; -
慢查询日志(slow query log):
SHOW VARIABLES LIKE 'slow_query_log_file';(需先开启:SET GLOBAL slow_query_log = ON;) -
通用查询日志(general log):
SHOW VARIABLES LIKE 'general_log_file';(需先开启:SET GLOBAL general_log = ON;) -
二进制日志(binlog):
SHOW VARIABLES LIKE 'log_bin%';→ 关注log_bin_basename或log_bin是否为 ON,再看log_bin_index
常见安装方式下的默认日志目录
不同安装方式有惯用路径,但最终以配置为准:
-
yum 安装(CentOS/RHEL):通常在
/var/log/mysqld.log(错误日志),binlog 和其他日志在/var/lib/mysql/下 -
apt 安装(Ubuntu/Debian):错误日志多为
/var/log/mysql/error.log或/var/log/mysql/mysql-error.log -
源码编译安装:默认与
datadir同级或在其内部,如/usr/local/mysql/data/hostname.err -
Docker 运行:容器内路径一般是
/var/lib/mysql/,需通过docker exec -it mysql-container cat /etc/my.cnf查配置,或挂载宿主机目录明确日志位置
关键配置项说明(my.cnf 或 my.ini 中)
日志行为由配置文件控制,重点关注以下参数:
-
log_error = /path/to/error.log—— 错误日志绝对路径,未设置时默认在 datadir 下生成hostname.err -
slow_query_log = ON+slow_query_log_file = /path/to/slow.log—— 慢日志开关与路径 -
general_log = ON+general_log_file = /path/to/general.log—— 通用日志开关与路径 -
log_bin = /path/to/mysql-bin—— binlog 基础名,实际生成mysql-bin.000001、mysql-bin.index等 -
datadir = /var/lib/mysql—— 数据目录,多数日志(尤其未显式指定路径时)会落在这个目录里
快速定位日志的小技巧
如果无法登录 MySQL 或配置文件丢失,可尝试以下方式辅助判断:
- 运行
ps aux | grep mysql,查看启动命令中是否有--log-error=或--general-log-file=等参数 - 检查
my.cnf文件(常见路径:/etc/my.cnf、/etc/mysql/my.cnf、/usr/my.cnf、~/.my.cnf) - 进入 datadir 目录(可通过
mysql -e "SELECT @@datadir;"获取),用ls -lt *.log *.err *.bin查看最新日志文件 - 使用
find /var -name "*.err" -mmin -60 2>/dev/null快速搜索近1小时内的错误日志










