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.errDocker 运行:容器内路径一般是
/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小时内的错误日志
