Mysql
正常日誌記錄在 MySQL 中不起作用
我在 SF 上看到 MySQL 中有一個選項可以記錄所有查詢。因此,在我的版本(CentOS 5.2 上的 mysql-server-5.0.45-7.el5)中,這似乎是啟用“日誌”選項的情況,所以我編輯
/etc/my.cnf
添加了這個:[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql old_passwords= log=/var/log/mysql-general.log [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
然後我創建了文件並設置了權限:
# touch /var/log/mysql-general.log # chown mysql. /var/log/mysql-general.log # ls -l /var/log/mysql-general.log -rw-r--r-- 1 mysql mysql 0 Jan 18 15:22 /var/log/mysql-general.log
但是當我啟動 mysqld 時,我得到:
120118 15:24:18 mysqld started ^G/usr/libexec/mysqld: File '/var/log/mysql-general.log' not found (Errcode: 13) 120118 15:24:18 [ERROR] Could not use /var/log/mysql-general.log for logging (error 13). Turning logging off for the whole duration of the MySQL server process. To turn it on again: fix the cause, shutdown the MySQL server and restart it. 120118 15:24:18 InnoDB: Started; log sequence number 0 182917764 120118 15:24:18 [Note] /usr/libexec/mysqld: ready for connections.
誰能建議為什麼這不起作用?
“未找到”聽起來像是權限問題,即使您已授予 mysql 訪問該特定文件的權限,它也可能無權訪問
/var/log
. 嘗試將日誌文件放在 mysql 數據文件夾中,/var/lib/mysql/
. 我試圖記住曾經在該路徑之外看到 mysql 日誌文件的案例。
如果您在 Ubuntu 上,如果您試圖將日誌文件放在 mysql 目錄之外(例如 /var/log/mysql),您可能會遇到此問題。要解決此問題,請將您的路徑添加到
/etc/apparmor.d/usr.sbin.mysqld.