秋刀鱼设计

团队专业网站建设、品牌产品推广服务

@helosh6年前

2015/12/30
17:28 星期三
代码猿

Mysql数据表一直显示使用中的修复方法

修复表是因为数据库丢失或损坏了,我们可以通过mysql自带的命令或一些工具进行修复从而使用表可以正常使用了,下文小编为各位介绍一些解决办法。

打开phpmyadmin选择数据库查看,果然有3个表显示为“使用中”。勾选之后进行“修复表”,出现错误提示不能被修复。

于是接着从“分析表”、“优化表”开始,均告失败。失败信息第一条:can’t create new temp file


1.表损坏的原因分析

以下原因是导致mysql 表毁坏的常见原因:
1、 服务器突然断电导致数据文件损坏。
2、 强制关机,没有先关闭mysql 服务。
3、 mysqld 进程在写表时被杀掉。
4、 使用myisamchk 的同时,mysqld 也在操作表。
5、 磁盘故障。
6、 服务器死机。
7、 mysql 本身的bug 。

2.表损坏的症状

一个损坏的表的典型症状如下:
1 、当在从表中选择数据之时,你得到如下错误:
Incorrect key file for table: ‘…’. Try to repair it
2 、查询不能在表中找到行或返回不完全的数据。
3 、Error: Table ‘p’ is marked as crashed and should be repaired 。
4 、打开表失败: Can’t open file: ‘×××.MYI’ (errno: 145) 。

google解决方案:强制修复 myisamchk -r -f ****.MYI,问题依旧

方法一:

重启动mysql,简单,一般会有效。

方法二:

运行SQL语句,登陆phpmyadmin,运行如下语句,多数可以决绝。

CHECK TABLE `table1`; 

ANALYZE TABLE `table1`; 

REPAIR TABLE `table1`;

方法三:

登陆phpmyadmin,首页有个“状态”标签,点击进去服务器选项卡下有个杀死进程的。

方法四:

使用linux命令解决Mysql数据表一直显示使用中。以lampp服务器集成包为例,数据库显示“使用中”,操作命令如下:

/opt/lampp/lampp stopmysql 

cd /opt/lampp/var/mysql/ 

/opt/lampp/bin/myisamchk -f miningplants/wp_options.MYI (数据库名、数据表名) 

/opt/lampp/lampp startmysql

Mysql数据表一直显示使用中的修复方法