温馨提示×

Debian MySQL如何开启日志

小樊
47
2026-07-02 06:53:22
栏目: 云计算

在 Debian 系统上开启 MySQL(或 MariaDB)日志,常见包括 错误日志、查询日志、慢查询日志。下面按 通用做法 + Debian 常见路径 说明。


一、确认 MySQL 版本

mysql --version
  • MySQLMariaDB 配置方式基本一致,但文件名可能不同。

二、编辑 MySQL 配置文件

Debian 常见配置文件位置:

/etc/mysql/my.cnf
# 或
/etc/mysql/mysql.conf.d/mysqld.cnf

编辑文件(需 root 权限):

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

三、开启常见日志

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

[mysqld]
log_error = /var/log/mysql/error.log

✅ Debian 默认路径一般就是:

/var/log/mysql/error.log

2️⃣ 通用查询日志(记录所有 SQL,不建议长期开启)

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

⚠️ 性能影响大,仅用于调试


3️⃣ 慢查询日志(推荐开启)

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

超过 2 秒的 SQL 会被记录


四、创建并授权日志目录(重要)

Debian 下 MySQL 通常以 mysql 用户运行:

sudo mkdir -p /var/log/mysql
sudo chown mysql:mysql /var/log/mysql
sudo chmod 750 /var/log/mysql

五、重启 MySQL 服务

sudo systemctl restart mysql
# 或
sudo systemctl restart mariadb

六、验证日志是否开启

登录 MySQL:

mysql -u root -p

查看变量:

SHOW VARIABLES LIKE 'general_log%';
SHOW VARIABLES LIKE 'slow_query_log%';
SHOW VARIABLES LIKE 'log_error';

查看日志文件:

tail -f /var/log/mysql/slow.log

七、临时开启(无需重启,重启后失效)

SET GLOBAL general_log = 'ON';
SET GLOBAL slow_query_log = 'ON';

八、常见问题

❌ 日志文件不生成

  • 检查:
    • 目录权限
    • AppArmor(Debian 常见)
sudo aa-status

如受限,可修改:

/etc/apparmor.d/usr.sbin.mysqld

❌ MariaDB 与 MySQL 差异

MariaDB 同样支持上述配置,配置文件通常在:

/etc/mysql/mariadb.conf.d/50-server.cnf

九、生产环境建议 ✅

  • ✅ 开启 错误日志
  • ✅ 开启 慢查询日志
  • ❌ 不要长期开启 通用查询日志

如果你愿意,我可以根据你的 Debian 版本 + MySQL/MariaDB 版本 给你一份 精确配置示例

0