数据库长时间没有重启,今天重启后发生故障了。 虽然能启动,也可以命令行进入mysql,但是不管查询什么数据,都会报错:
Incorrect information in file: './dbname/tablename.frm'
一开始没有查看错误日志,琢磨了好久好久,还曾尝试 repair table 但是无果,走了不少弯路。 不经意间查看了错误日志,发现问题所在:
...skipping...
^G/usr/local/mysql/bin/mysqld: Can't create/write to file '/disk1/ibxv7QmF' (Errcode: 13)
这是说,/disk1/ 不能写入,明白了,innodb数据库引擎启动时,会写个临时文件,而mysql会选择最后一个较大的分区,因为我的/disk1/为一个单独分区,而且空间蛮大的,所以它选择了在这个分区写临时文件,可不幸的是,/disk1/ 目录mysql账户并没有写权限,所以出错了,解决办法为:
chmod o+w /disk1/ 再重启mysql,问题解决。
Incorrect information in file: './dbname/tablename.frm'
一开始没有查看错误日志,琢磨了好久好久,还曾尝试 repair table 但是无果,走了不少弯路。 不经意间查看了错误日志,发现问题所在:
...skipping...
^G/usr/local/mysql/bin/mysqld: Can't create/write to file '/disk1/ibxv7QmF' (Errcode: 13)
这是说,/disk1/ 不能写入,明白了,innodb数据库引擎启动时,会写个临时文件,而mysql会选择最后一个较大的分区,因为我的/disk1/为一个单独分区,而且空间蛮大的,所以它选择了在这个分区写临时文件,可不幸的是,/disk1/ 目录mysql账户并没有写权限,所以出错了,解决办法为:
chmod o+w /disk1/ 再重启mysql,问题解决。
编辑回复