6

我正在尝试Ver 14.14 Distrib 5.5.22使用 readline 6.2 获取在 debian-linux-gnu (x86_64) 上运行的 mysql 服务器的日志文件

基于几个网站,我在以下位置取消了对这些行的注释/etc/mysql/my.cnf

general_log_file        = /var/log/mysql/mysql.log 
general_log             = 1

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

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

这没有帮助:仍然没有日志!该文件为空。

4

2 回答 2

11

更新文件后是否重新启动服务器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;

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

于 2012-07-22T09:03:01.650 回答
1

我在 Ubuntu 14.04 上遇到了与 MySQL 5.5 相同的问题。权限和配置正常,但 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

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

于 2015-04-09T09:07:47.413 回答