由于临时断电或其他原因,mysql数据库服务正在改变数据库文件,文件可能会留下错误的或不一致的状态。当访问受损坏的数据库某些表时,由于这些表已经损坏将不能再正常访问,一般mysql将报错误号为127的错误,此时我们将需要使用mysql自带的工具修改损坏的数据库表。
(非断电原因不能打开数据库表,如当mysql的数据库表文件超过操作系统指定文件大小时—windows的4G限制,也将出现类似的错误),步骤如下(以windows为例):
1、 停止mysql服务
在dos控制台下运行:net stop mysql(服务名)
2、 使用mysql自带命令修复
(假设数据库安装在d:\mysql,数据库文件在d:\mysql\data\db1目录下),进入控制台后进入mysql的bin目录
D:\mysql\bin>myisamchk -r d:\mysql\data\表名.*
D:\mysql\bin> myisamchk --recover d:\mysql\data\db1\表名.*
或
D:\mysql\bin> myisamchk --saferecover d:\mysql\data\db1\表名.*
3、 重新启动mysql服务
在dos控制台下运行:net start mysql(服务名)
mysql相关辅助命令(在mysql控制台下运行,查看数据库表)
use 数据库; 切换到某个数据库
show tables;
show tables like '%包含的字符%'; 模糊查找
desc 表名; 显示表的结构,看表有没有损坏