我在启用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必要的文件。