前两天实验室机房断电后发现服务器上的mysql启动不了了。通过查看日志(/var/log/mysqld.log)和网上查阅相关资料,发现是由于意外关机引起的权限crash,日志文件中mysql启动时报文件读取权限问题。然后参考帖子CentOS 6.5 - MySQL Daemon failed to start.修改了mysql的文件权限(/var/lib/mysql),具体权限是/var/lib/mysql的权限为755,/var/lib/mysql下的子目录及文件的权限为700,/var/lib/mysql/mysql下的子目录及文件权限为660。修改后的文件权限如下:
但还是启动失败,但文件权限问题解决了,具体报错如下:
查看网上分析是因为mysql日志已经损坏,这里采用非常规手段,修改innodb_force_recovery参数,使mysqld跳过恢复步骤。innodb_force_recovery参数的值可以设为0~6,0为默认的正常启动值,可在文件/etc/my.cnf文件中设置,关于innodb_force_recovery可查看文档Forcing InnoDB Recovery。但强制启动还是没启动起来,在这里折腾了很久,也没有看到有类似的问题。最后发现删除了mysql的日志文件后重启成功了!具体的文件为/var/lib/mysql目录下的ib_logfile0、ib_logfile1文件,删除后就启动成功了。
特记录下,希望对遇到同样问题的人有所帮助。