一张损坏的表的症状通常是查询意外中断并且你能看到例如这些错误
“tbl_name.frm”被锁定不能改变。
不能找到文件“tbl_name.MYI”(Errcode :### )。
从表处理器的得到错误###(此时,错误135是一个例外)。
意外的文件结束。
记录文件被毁坏。
在这些情况下,你必须修复表。myisamchk通常能检测并且修复出错的大部分东西。
修复过程包含最多4个阶段,在下面描述。在你开始前,你应该cd到数据库目录和检查表文件的权限,确保他们可被运行mysqld的Unix用户读取(和你,因为你需要存取你正在检查的文件)。如果它拒绝你修改文件,他们也必须是可被你写入的。
阶段1:检查你的表
运行myisamchk *.MYI或(myisamchk -e *.MYI,如果你有更多的时间)。使用-s(沉默)选项禁止不必要的信息。
你必须只修复那些myisamchk报告有一个错误的表。对这样的表,继续到阶段2。
如果在检查时,你得到奇怪的错误(例如out of memory错误),或如果myisamchk崩溃,到阶段3。
舞台 2 :简单安全的修复
首先,试试myisamchk -r -q tbl_name(-r -q意味着“快速恢复模式”)。这将试图不接触数据文件来修复索引文件。如果数据文件包含它应有的一切和在数据文件指向正确地点的删除连接,这应该管用并且表可被修复。开始修理下一张表。否则,使用下列过程:
在继续前做数据文件的一个备份。
使用myisamchk -r tbl_name(-r意味着“恢复模式”)。这将从数据文件中删除不正确的记录和已被删除的记录并重建索引文件。
如果前面的步骤失败,使用myisamchk --safe-recover tbl_name。安全恢复模式使用一个老的恢复方法,处理常规恢复模式不行的少数情况(但是更慢)。
如果在修复时,你得到奇怪的错误(例如out of memory错误),或如果myisamchk崩溃,到阶段3。
舞台 3 :困难的修理
如果在索引文件的第一个16K块被破坏,或包含不正确的信息,或如果索引文件丢失,你只应该到这个阶段 。在这种情况下,创建一个新的索引文件是必要的。按如下这样做:
把数据文件移更安全的地方。
使用表描述文件创建新的(空)数据和索引文件:shell> mysql db_namemysql> DELETE FROM tbl_name;mysql> quit
将老的数据文件拷贝到新创建的数据文件之中。(不要只是将老文件移回新文件之中;你要保留一个副本以防某些东西出错。)
回到阶段2。现在myisamchk -r -q应该工作了。(这不应该是一个无限循环)。
阶段4:非常困难的修复
只有描述文件也破坏了,你才应该到达这个阶段。这应该从未发生过,因为在表被创建以后,描述文件就不再改变了。
从一个备份恢复描述文件并且回到阶段3。你也可以恢复索引文件并且回到阶段2。对后者,你应该用myisamchk -r启动。
如果你没有一个备份但是确切地知道表是怎样被创建的,在另一个数据库中创建表的一个拷贝。删除新的数据文件,然后从其他数据库将描述和索引文件移到破坏的数据库中。这给了你新的描述和索引文件,但是让数据文件独自留下来了。回到阶段2并且尝试重建索引文件。
分享到:
相关推荐
Linux MySQL 访问慢解决方案 MySQL 是一个功能强大且广泛使用的关系数据库管理系统,对于 Linux 操作系统尤其重要。本文将解决 Linux 上 MySQL 访问慢的问题,提供详细的解决方案和配置方法。 问题描述 MySQL 访问...
Linux MySQL RPM包是针对Linux操作系统的一种安装MySQL数据库服务器和客户端的软件包格式。RPM(Red Hat Package Manager)是Linux世界中广泛使用的软件包管理器,它可以方便地安装、升级和卸载软件。在本例中,我们...
Linux MySQL 5.5 client 安装包
Linux MySQL 5.17 RPM 是一款专为Linux操作系统设计的数据库管理系统,它基于RPM(Red Hat Package Manager)格式,使得在Linux环境下安装和管理MySQL变得更为便捷。MySQL是世界上最受欢迎的开源关系型数据库之一,...
### Linux MySQL 中的大小写敏感性问题解析及解决方法 #### 背景与问题描述 在进行软件开发过程中,可能会遇到这样的问题:原本在本地Windows环境下运行良好的MySQL数据库应用程序,一旦部署到Linux服务器上,就...
本文将详细讲解如何在Linux环境下安装MySQL 5.6.31版本,以便于进行服务器开发。 首先,我们需要理解Linux操作系统,它是基于Unix的操作系统,以其稳定性和安全性著称,广泛应用于服务器环境。对于服务器开发来说,...
linux Mysql5.7配置文件
Linux MySQL 数据库无法启动故障处理 在 Linux 系统中,MySQL 数据库无法启动是非常常见的故障之一。今天,我们一起解决两个常见的错误:mysql PID file not found 和 Can't connect to MySQL through socket mysql...
主要介绍了navicat连接远程linux mysql数据库出现10061未知故障,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
这个`mysql-connector-java-5.1.36.tar.gz`文件是一个针对Linux操作系统的压缩包,包含了运行在Linux环境下的MySQL Connector/J的具体版本5.1.36。 MySQL Connector/J遵循JDBC(Java Database Connectivity)标准,...
【linux 解压版mysql数据库】 内含:两个安装word文档和mysql-5.1.30.tar.gz linux 安装MySQL.docx Linux安装MySQL数据库(安装验证).doc mysql-5.1.30.tar.gz 根据word文档安装,经测试, 安装成功。
在Linux操作系统中,MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),它以其高效、稳定和可扩展性而闻名。对于开发人员来说,尤其是在Linux环境下进行C语言编程时,了解如何与MySQL交互是非常重要的技能。...
"Linux MySQL集群环境搭建" 在Linux系统下,MySQL集群的搭建是一个复杂的过程,它需要oroughly了解MySQL集群的概念、架构和配置。在本文中,我们将详细介绍MySQL集群的概念、架构、环境配置、安装和配置MySQL集群...
在Linux系统中安装MySQL数据库是许多开发者和系统管理员必须掌握的一项技能。本文将详细讲解如何在Linux环境下通过tar.gz格式的安装包来安装MySQL。MySQL是一种广泛使用的开源关系型数据库管理系统,对于服务器部署...
### Linux 下 MySQL 5.7.13 的安装与配置详解 #### 一、服务器信息检查 在安装 MySQL 之前,首先要确保服务器满足相应的硬件和软件需求。这一步骤可以通过以下命令来完成: 1. **确认 Linux 发行版**: - `cat /...
Linux MySQL UTF8 配置和乱码处理 在 Linux 上使用 MySQL 时,需要注意一些设置和处理乱码的数据处理。下面将详细介绍这些设置和处理方法。 MySQL 配置文件 MySQL 的主要配置文件位于 `/etc/mysql/my.cnf`。这个...
MySQL是世界上最受欢迎的开源数据库系统之一,尤其在Linux环境下,其稳定性和性能得到了广大用户的认可。MySQL 5.7版本是MySQL的一个重要里程碑,它带来了许多改进和新特性,为开发者和运维人员提供了更强大的功能。...
最新版linux mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz最新版linux mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz