Mysql有的时候因为掉电或者其他原因导致数据库损坏,错信息如下:
MySql: Can't open file: 'sdb_sessions.MYI'. (errno: 145)
For more information, see Help and Support Center at
我们可以使用mysql自带的mysqlcheck命令来快速修复所有的数据库或者特定的数据
如果你的数据库主机就你一个人用,并且你还能控制的话,建议你用Mysql自带的修复工具myisamchk.exe进行修复,操作如下:
修复前将mysql服务停止。
如果是Win主机,打开命令行方式,然后进入到mysql的/bin目录。
执行myisamchk -r 数据库所在路径*.MYI
如果是类Unix主机,直接使用myisamchk -r 数据库目录*.MYI
使用命令myisamchk修复数据库的MYI文件即可
代码如下 | 复制代码 |
# /usr/local/mysql5/bin/myisamchk -c -r /bak/lib/mysql/yourealcn/biz_user.* myisamchk: error: ‘/bak/lib/mysql/yourealcn/biz_user.frm’ is not a ——— myisamchk: error: ‘/bak/lib/mysql/yourealcn/biz_user.MYD’ is not a ——— - recovering (with sort) MyISAM-table ‘/bak/lib/mysql/yourealcn/biz_user.MYI’ Data records: 20414 |
其实还有一个简单的方法打开你的myphpadmin,选中Can’t open file:后面同名的表,有个下拉菜单“选中项”,选择“修复”
1. 进入管理mysql的phpmyadmin
2. 在左则选中自己的数据库
3. 在右则勾选中错误信息中的那个’xxx’表
4.
滚动屏幕到下面,有个下拉菜单(With selected:),选择”Repair table”
修改之后,并没有发现有什么数据损失,连忙备份了一份数据库到邮件里面,备份还是很重要的