MySQL常规日志不在“设置全局”上启动

时间:2012-03-13 14:51:44

标签: 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 个答案:

答案 0 :(得分: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以手动创建它。