Debian系统上Mysql启动失败,错误如下:
# /etc/init.d/mysql start
然后在重新执行启动,发现错误仍然依旧。
然后就开始了漫漫google路,最后找到一个临时解决方案,移除my.cnf文件,mysql启动成功,但这只是临时解决方案,错误仍然没有根除啊。
想起报错错误号13,这个是权限错误,肯定是my.cnf中哪个文件或目录的权限不够啊,就一条条检查吧!
最后注释下述语句发现问题解决:
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
应该是/var/log/mysql/mysql-bin.log权限不够导致,
检查权限设置如下:
# ls -ld /var/log/mysql
drwxr-s--- 2 root root 4096 2011-09-09 10:14 /var/log/mysql
果然mysql对该目录没有写权限,更改目录属组如下问题解决:
# ls -ld /var/log/mysql
drwxr-s--- 2 mysql adm 4096 2011-09-09 09:43 /var/log/mysql
# /etc/init.d/mysql start
Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!
查找了一下,啥日志信息都没有。这就比较头疼了,最后只能在/etc/init.d/mysql中加set -x进行调试了。
发现是执行如下命令报错:
usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock
错误信息如下:
/usr/sbin/mysqld: File '/var/log/mysql/mysql-bin.index' not found (Errcode: 13)
发现这个文件确实不存在,手工touch了一个,参考其它机器,设置权限如下:
-rw-rw---- 1 mysql adm 32 2011-09-09 10:14 mysql-bin.index然后在重新执行启动,发现错误仍然依旧。
然后就开始了漫漫google路,最后找到一个临时解决方案,移除my.cnf文件,mysql启动成功,但这只是临时解决方案,错误仍然没有根除啊。
想起报错错误号13,这个是权限错误,肯定是my.cnf中哪个文件或目录的权限不够啊,就一条条检查吧!
最后注释下述语句发现问题解决:
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
应该是/var/log/mysql/mysql-bin.log权限不够导致,
检查权限设置如下:
# ls -ld /var/log/mysql
drwxr-s--- 2 root root 4096 2011-09-09 10:14 /var/log/mysql
果然mysql对该目录没有写权限,更改目录属组如下问题解决:
# ls -ld /var/log/mysql
drwxr-s--- 2 mysql adm 4096 2011-09-09 09:43 /var/log/mysql