我正在尝试获取我的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日志简单直接......
答案 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。