2012-03-13 62 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以手動創建它。