I'm having problems enabling binary logging on mySQL 4.1.20
After adding
log-bin=/var/log/mysql/tts_db
to my.cnf, mysql fails to restart, with the following error in mysqld.log:
091112 03:36:37 mysqld started /usr/libexec/mysqld: File '/var/log/mysql/tts_db.000001' not found (Errcode: 13) 091112 3:36:37 [ERROR] Could not use /var/log/mysql/tts_db 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. 091112 3:36:37 [ERROR] Aborting 091112 3:36:37 [Note] /usr/libexec/mysqld: Shutdown complete 091112 03:36:37 mysqld ended
Whilst looking at it to ask this question, I may have stumbled on the answer, but I'll check anyway – I can't restart the server until tomorrow morning.
The mysql directory (/var/log/mysql) is owned by root. Is this problem because the mysql user that the server runs as doesn't have the correct privileges for creating a file in the directory?
Here's the complete my.cnf ( i know the log-bin is commented out – this is the current one)
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock set-variable=local-infile=0 set-variable = max_connections=130 long_query_time = 1 log-slow-queries =/var/log/mysql/mysql-slow.log # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1 skip-bdb # We can't skip networking because the phpList server is on a different server. #skip-networking set-variable = innodb_thread_concurrency=2 table_cache = 512 query_cache_size = 20M key_buffer_size = 64M thread_cache_size = 10 tmp_table_size = 48M # Added 11 Nov 2009 to enable binary logging for replication server-id = 1 #log-bin=/var/log/mysql/tts_db #expire-logs-days = 2 #max_binlog_size = 500M #binlog-do-db=tts_db #============================================================================== # mysql.server section #============================================================================== # [mysql.server] user=mysql basedir=/var/lib #============================================================================== # mysqd_safe section #============================================================================== # [mysqld_safe] err-log=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid skip-bdb set-variable = innodb_thread_concurrency=2 table_cache = 512 query_cache_size = 20M key_buffer_size = 64M thread_cache_size = 10 tmp_table_size = 48M open-files-limit = 4096
Best Answer
In general on Linux systems, an Errno 13 means Permissions Denied or Access Denied.
What's the output of
Does this match with your MySQL user?
If not, suggested solution (providing mysql is your mysql user and mysql is your group):