Binlog 无法读取导致无法启动,错误日志:Failed to open log (file './mysql-bin.000001', errno 13)

问题描述

MySQL 无法启动报错:

1
Starting MySQL…The server quit without updating PID file [FAILED]a/server/mysql/data/test.pid).

查看 MySQL 的错误日志会提示如下信息:

1
110711 00:00:00 [ERROR] Failed to open log (file './mysql-bin.000001', errno 13)

这说明 Binlog 日志无法去读,一般由于磁盘空间满,或者权限不正确导致。

解决办法

首先查询磁盘空间:

1
2
3
4
[root@test /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 20G 2.7G 17G 14% /tmpfs
/dev/shm/dev/xvdb1 30G 19G 9.7G 66% /alidata

查看磁盘空间没有满,则需要 ls 命令检查文件权限:

1
-r———— 1 root root 601 Jul 28 2014 mysql-bin.000001

这说明文件属主和权限不正确,需要执行如下两条命令修复(mysql-bin.000001 这个日志文件需要换成具体文件名):

1
chmod 660 mysql-bin.000001chown mysql.mysql mysql-bin.000001

修改正确后已经可以正常启动mysql

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器