在 Debian 上查看 MySQL 日志,常见有 错误日志、慢查询日志、二进制日志 等。下面按常用场景说明。
SHOW VARIABLES LIKE 'log_error';
示例输出:
/var/log/mysql/error.log
SHOW VARIABLES LIKE 'slow_query_log_file';
SHOW VARIABLES LIKE 'slow_query_log';
SHOW VARIABLES LIKE 'general_log';
| 日志类型 | 默认路径 |
|---|---|
| 错误日志 | /var/log/mysql/error.log |
| 慢查询日志 | /var/log/mysql/mysql-slow.log |
| 通用日志 | 通常未开启 |
| 二进制日志 | /var/lib/mysql/mysql-bin.* |
sudo tail -f /var/log/mysql/error.log
查看最近 100 行:
sudo tail -n 100 /var/log/mysql/error.log
先确认已开启:
SET GLOBAL slow_query_log = 'ON';
查看:
sudo less /var/log/mysql/mysql-slow.log
列出 binlog 文件:
ls /var/lib/mysql/mysql-bin.*
使用 mysqlbinlog 查看:
sudo mysqlbinlog /var/lib/mysql/mysql-bin.000001
sudo chown mysql:mysql /var/log/mysql
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
添加或修改:
[mysqld]
log_error = /var/log/mysql/error.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
重启 MySQL:
sudo systemctl restart mysql
sudo tail -f /var/log/mysql/error.log
sudo grep -i error /var/log/mysql/error.log
如果你愿意,可以告诉我:
mysql --version)我可以给你更精确的排查方案。