2012-03-13 57 views
3

我试图建立我的MySQL一般的日志,以便它可以打开和关闭使用MySQL的一般日志没有启动“设置全局”

SET GLOBAL general_log = 'ON' 
SET GLOBAL general_log = 'OFF' 

进行切换,我想它默认关闭的(即在服务器启动时),但是可以像上面那样切换它,这样我就不必重新启动服务器。当我尝试如上切换普通登录,MySQL的生成以下错误:

Table 'mysql.general_log' doesn't exist 

这是真的 - 我有意没有创建这个表,因为我想记录到发生到文件 - 而不是表。这表明,我认为MySQL正在试图登录,即使相关的全局变量设置如下表一般查询:

log_output = FILE 
general_log = OFF 
general_log_file = /var/log/mysql-general.log 

my.cnf中的相关部分如下:

[mysqld] 
general-log = OFF 
general-log-file = /var/log/mysql-general.log 

我在Linux服务器上使用MySQL版本5.1.58。

由于提前,

安迪

+1

Andy用show变量检查你的变量,并用log-output,general-log,general-log文件名添加到你的问题中以更好地理解它 – 2012-12-30 14:24:56

回答

1

由于该表mysql.general_log不存在,我想你从以前版本的MySQL升级,需要运行mysql_upgrade创建它们。

备份全部采用mysqldump您的数据库,并做/var/lib/mysql文件系统备份,然后执行以下命令:

mysql_upgrade -p --force 

其次

service mysql restart 

/etc/init.d/mysql restart 

如果在执行这些步骤后general_log表仍不存在,请按照此帖中的步骤操作:MySql - I dropped general_log table以手动创建它。