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
Answer
In general on Linux systems, an Errno 13 means Permissions Denied or Access Denied.
What's the output of
# ls -ld /var/log/mysql
# ls -l /var/log/mysql
Does this match with your MySQL user?
If not, suggested solution (providing mysql is your mysql user and mysql is your group):
chown -R mysql:mysql /var/log/mysql
Comments
Post a Comment