my.cnf参数启用二进制日志loggingmySQL 4.1.20

我在启用mySQL 4.1.20上的二进制日志logging时遇到问题

添加后

 login斌= /无功/日志/ mysql /下tts_db 

到my.cnf,mysql无法重新启动,在mysqld.log中出现以下错误:

 091112 03:36:37 mysqld开始了
 / usr / libexec / mysqld:找不到文件'/var/log/mysql/tts_db.000001'(Errcode:13)
 091112 3:36:37 [错误]无法使用/ var / log / mysql / tts_db进行日志logging(错误13)。 在整个MySQL服务器进程期间closures注销。 要重新打开它:修复原因,closuresMySQL服务器并重新启动它。
 091112 3:36:37 [错误]正在中止

 091112 3:36:37 [注] / usr / libexec / mysqld:关机完成

 091112 03:36:37 mysqld结束

在看这个问题的时候,我可能偶然发现了答案,但无论如何我要检查 – 明天早上我才能重启服务器。 mysql目录(/ var / log / mysql)由root拥有。 这个问题是因为服务器运行的mysql用户没有在目录中创build文件的正确权限?

这里是完整的my.cnf(我知道log-bin被注释掉 – 这是当前的)

的[mysqld]
 DATADIR =的/ var / lib中/ MySQL的
sockets=的/ var / lib中/ MySQL的/的mysql.sock

设置variables=本地的infile = 0

 set-variable = max_connections = 130

 long_query_time = 1
 log-slow-queries = / var / log / mysql / mysql-slow.log

 #默认使用旧密码格式与mysql 3.x兼容
 #客户端(使用mysqlclient10兼容包的客户端)。
 old_passwords = 1

跳BDB

 #我们不能跳过networking,因为phpList服务器在不同的服务器上。
 #跳过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
 #添加2009年11月11日启用二进制日志复制
 server-id = 1
 #日志斌= /无功/日志/ mysql /下tts_db
 #expire-logs-days = 2
 #max_binlog_size = 500M
 #二进制日志-DO-DB = tts_db

 #================================================= =============================
 #mysql.server部分
 #================================================= =============================
 #
 [mysql.server的]
用户= MySQL的
 BASEDIR =的/ var / lib中

 #================================================= =============================
 #mysqd_safe部分
 #================================================= =============================
 #
 [mysqld_safe的]
 ERR-日志= /无功/日志/ mysqld.log
 PID文件= / var / run中/ mysqld的/ mysqld.pid
跳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

打开文件限制= 4096

通常在Linux系统上, Errno 13意味着权限被拒绝或拒绝访问。

什么是输出

# ls -ld /var/log/mysql # ls -l /var/log/mysql 

这与你的MySQL用户匹配吗?

如果没有,build议的解决scheme(提供mysql是你的mysql用户,mysql是你的组):

 chown -R mysql:mysql /var/log/mysql 

mysql目录(/ var / log / mysql)由root拥有。 这个问题是因为服务器运行的mysql用户没有在目录中创build文件的正确权限?

恰恰。 mysqld已经放弃了它的root权限。 和datadir一样,这个目录需要被mysqld运行的用户和组所拥有,以便创build必要的文件。