我正在尝试设置我的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。
提前致谢,
安迪
答案 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以手动创建它。