Ошибка создания лога mysql-server
На сервере под управлением FreeBSD 7.2-RELEASE работает mysql-server-5.0.89. Он пишет лог, согласно настройке в файле:
# less /var/db/mysql/my.cnf | grep mysql.log log = /var/log/mysql.log |
Изначально права на этот файл лога были:
# ls -Al /var/log/ | grep mysql.log -rw-r--r-- 1 root wheel 317542611 15 фев 13:42 mysql.log
Лог стал разрастаться (до нескольких сотен мегабайт), решил его убрать в архив, а имеющийся “обнулить”. В итоге, после рестарта сервера mysql лог не начал писаться, а в файле логов InnoDB появились записи вида:
# less /var/db/mysql/localhost.err 100215 13:55:02 mysqld started ^G/usr/local/libexec/mysqld: File '/var/log/mysql.log' not found (Errcode: 13) 100215 13:55:02 [ERROR] Could not use /var/log/mysql.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. 100215 13:55:02 InnoDB: Started; log sequence number 0 43685 100215 13:55:02 [Note] /usr/local/libexec/mysqld: ready for connections. Version: '5.0.89-log' socket: '/tmp/mysql.sock' port: 3306 FreeBSD port: mysql-server-5.0.89
Пришлось заново создать файл лога работы mysql-server и дать на него следующие права:
# touch /var/log/mysql.log # chown mysql:mysql /var/log/mysql.log # chmod 0600 /var/log/mysql.log
Ошибки после проделанных операций этого пропали, создался лог-файл, работать с которым может только демон mysql и больше никто другой. Это очень полезно, т.к. в лог пишутся логины и пароли к базам данных.