mysql日志文件是空的虽然我似乎已经设置了一切

时间:2012-07-22 08:12:35

标签: mysql logging

我正在尝试获取我的mysql服务器的日志文件:

mysql Ver 14.14使用readline 6.2为debian-linux-gnu(x86_64)分发5.5.22

正如我在许多网站上看到的那样,我在/etc/mysql/my.cnf中取消注释了这些行:

general_log_file = /var/log/mysql/mysql.log

general_log = 1

运行mysql后我检查了/var/log/mysql/mysql.log没有创建。网站建议我运行了2个命令:

触摸/var/log/mysql/mysql.log

chown mysql:mysql /var/log/mysql/mysql.log

无论如何,没有日志!该文件为空。并且据我搜索网页,获取mysql日志简单直接......

2 个答案:

答案 0 :(得分:7)

更新my.cnf文件后是否重新启动了服务器?

请发出:

SELECT @@global.general_log;
SELECT @@global.general_log_file;
SELECT @@global.log_output;

这些是服务器看到它们的事实上的变量。 您可以按如下方式动态更改tgem:

SET GLOBAL general_log:=1;
SET GLOBAL log_output := 'FILE';

此外,作为最后的手段,请尝试:

FLUSH LOGS;

关闭+重新打开日志文件描述符。

答案 1 :(得分:1)

我在Ubuntu 14.04遇到了与MySQL 5.5相同的问题。 Permisions和配置都没问题,但FLUSH LOGS返回

ERROR 1105 (HY000): Unknown error

原来,问题是由错误的AppArmor设置引起的。

如果是这种情况,/ var / log / syslog文件包含

之类的行
<from kernel>: apparmor="DENIED" operation="mknod" profile="/usr/sbin/mysqld" name="/var/log/mysql/mysql.log" pid=16798 comm="mysqld" requested_mask="c" denied_mask="c" fsuid=115 ouid=115

将AppArmor配置修复到文件/etc/apparmor.d/usr.sbin.mysqld中,然后重新启动AppArmor和MySQL。