温馨提示×

centos mysql如何开启日志

小樊
37
2026-10-14 13:12:12
栏目: 云计算

在 CentOS 上开启 MySQL 日志,通常我们指的是以下几种常见日志:

  • 错误日志(error log)
  • 慢查询日志(slow query log)
  • 通用查询日志(general log)
  • 二进制日志(binlog,用于主从/恢复)

下面以 CentOS 7/8 + MySQL 5.7/8.0 为例说明。


一、确认 MySQL 配置文件位置

一般配置文件在:

/etc/my.cnf
# 或
/etc/my.cnf.d/*.cnf

编辑配置文件:

vim /etc/my.cnf

二、开启常见日志

1️⃣ 错误日志(默认通常已开启)

[mysqld]
log-error=/var/log/mysqld.log

查看错误日志:

tail -f /var/log/mysqld.log

2️⃣ 慢查询日志(最常用)

[mysqld]
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow.log
long_query_time=2

说明:

  • long_query_time=2:超过 2 秒的 SQL 记录

创建日志目录并授权:

mkdir -p /var/log/mysql
chown mysql:mysql /var/log/mysql

3️⃣ 通用查询日志(调试用,生产慎用)

[mysqld]
general_log=1
general_log_file=/var/log/mysql/general.log

4️⃣ 二进制日志(binlog)

[mysqld]
log-bin=mysql-bin
server-id=1

注意:

  • server-id 必须唯一(主从必须)
  • binlog 默认在 /var/lib/mysql

查看 binlog:

mysqlbinlog mysql-bin.000001

三、重启 MySQL 使配置生效

systemctl restart mysqld

四、动态开启(不需重启)

开启慢查询日志

SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2;

开启通用日志

SET GLOBAL general_log = 'ON';

⚠️ 动态修改重启后失效


五、验证是否开启

SHOW VARIABLES LIKE 'slow_query_log';
SHOW VARIABLES LIKE 'general_log';
SHOW VARIABLES LIKE 'log_bin';

六、常见问题

1. 日志文件无写入?

  • 检查目录权限
  • 检查 SELinux:
setenforce 0
# 或添加安全上下文

2. MySQL 8 默认使用 caching_sha2_password

不影响日志配置


如果你告诉我:

  • MySQL 版本
  • CentOS 版本
  • 想开启哪种日志(排错 / 优化 / 主从)

我可以给你更精确的配置示例。

0 踩