search
HomeDatabaseMysql TutorialMySQL损坏数据的恢复(1)_MySQL

此文档是一位高手同事Hewei的原创实践总结,过程真是精彩,最后修复损坏数据库取得圆满效果,值得收藏的一篇好文章

环境:windows2003
数据库:mysql
损坏数据文件名:function_products

将数据库内容物理文件直接导入到mysqldata下,每只表各3个文件,依次分别为:.frm .MYD .MYI

     首先我第一想到的是去网上搜索,寻找类似的工具,试图通过工具来恢复已损坏的文件,于是我在GOOGLE上查找,找到一款名为MySQLRecovery 的工具,安装后我用其进行恢复,只可惜效果太不理想,几十M大的数据文件,恢复之后它提示我竟然只有几十K,令我吐血...
    我又想到了mysql下应有自己本身的修复程序等,于是想通过其来进行恢复,心想应不会太差劲吧,在网上查找了资料,提示:
    由于临时断电,使用kill -9中止MySQL服务进程,或者是mysql正在高速运转时进行强制备份操作时等,所有的这些都可能会毁坏MySQL的数据文件。如果在被干扰时,服务正在改变文件,文件可能会留下错误的或不一致的状态。因为这样的毁坏有时是不容易被发现的,当你发现这个错误时可能是很久以后的事了。
于是,当你发现这个问题时,也许所有的备份都有同样的错误。
    我想我现在碰到的问题可能是这个问题,因为备份的数据也是有部分损坏的数据,所以导致不能完全运行,意识到myisamchk程序对用来检查和修改的 MySQL数据文件的访问应该是唯一的。如果MySQL服务正在使用某一文件,并对myisamchk正在检查的文件进行修改,myisamchk会误以为发生了错误,并会试图进行修复--这将导致MySQL服务的崩溃!这样,要避免这种情况的发生,通常我们需要在工作时关闭MySQL服务。

作为选择,你也可以暂时关闭服务以制作一个文件的拷贝,然后在这个拷贝上工作。当你做完了以后,重新关闭服务并使用新的文件取代原来的文件(也许你还需要使用期间的变更日志)。
    MySQL数据目录不是太难理解的。每一个数据库对应一个子目录,每个子目录中包含了对应于这个数据库中的
数据表的文件。每一个数据表对应三个文件,它们和表名相同,但是具有不同的扩展名。tblName.frm文件是
表的定义,它保存了表中包含的数据列的内容和类型。tblName.MYD文件包含了表中的数据。tblName.MYI文件
包含了表的索引(例如,它可能包含lookup表以帮助提高对表的主键列的查询)。
   要检查一个表的错误,只需要运行myisamchk(在MySQL的bin目录下)并提供文件的位置和表名,或者是表的索引文件名:
% myisamchk /usr/local/mysql/var/dbName/tblName
% myisamchk /usr/local/mysql/var/dbName/tblName.MYI


上面的两个命令都可以执行对指定表的检查。要检查数据库中所有的表,可以使用通配符:
% myisamchk /usr/local/mysql/var/dbName/*.MYI

要检查所有数据库中的所有表,可以使用两个通配符:
% myisamchk /usr/local/mysql/var/*/*.MYI

如果不带任何选项,myisamchk将对表文件执行普通的检查。如果你对一个表有怀疑,但是普通的检查不能发现任何错误,你可以执行更彻底的检查(但是也更慢!),这需要使用--extend-check选项:
% myisamchk --extend-check /path/to/tblName

对错误的检查是没有破坏性的,这意味着你不必担心执行对你的数据文件的检查会使已经存在的问题变得更糟。另一方面,修复选项,虽然通常也是安全的,但是它对你的数据文件的更改是无法撤消的。因为这个原因,我们强烈推荐你试图修复一个被破坏的表文件时首先做个备份,并确保在制作这个备份之前你的 MySQL服务是关闭的。 

    我在win2003下通过命令提示符,输入:

注:此为记录我当时操作的全部过程

D:Documents and SettingsAdministrator>c:

C:>cd mysql

C:mysql>cd data

C:mysqldata>cd hw_enterprice

C:mysqldatahw_enterprice>myisamchk function_products.frm'myisamchk' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

C:mysqldatahw_enterprice>cd

C:>cd mysql

C:mysql>cd bin

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
如何恢复您的 Steam 云存档如何恢复您的 Steam 云存档May 28, 2023 pm 10:25 PM

Steam会在您玩游戏时保存您的游戏进度并将其存储在Steam云中。当您在多台设备上玩Steam游戏时,此功能非常有用。只需在所有设备上使用您的Steam凭据登录,安装游戏即可!所有用户设置、游戏保存数据、您朋友的聊天框等等。修复1–检查游戏是否受支持所有Steam游戏均不支持Steam云存档功能。因此,您必须检查游戏是否真的支持此功能。1.在您的系统上打开Steam应用程序。2.现在,您必须使用您的凭据登录Steam。3.然后,输入您的用户名和密码,然后点击“登录

联想小新一键恢复小孔还原系统教程联想小新一键恢复小孔还原系统教程Jul 15, 2023 am 10:09 AM

  当我们的电脑遇到问题时,很多小伙伴都会使用恢复出厂设置来还原系统解决问题,今天要讲的就是联想电脑一键恢复系统的特点,我们都知道联想笔记本上都有一个小孔,大部分小伙伴都不知道这个小孔的用处,接下来小编就把联想一键恢复小孔的使用方法带给大家。  联想小新一键恢复小孔:  1.首先我们准备一个卡针,然后使用卡针捅一下机器左侧的一键恢复孔。  2.接着使用键盘上的按键选择“systemrecovery”,按回车。  3.在选择一个选项页面中,我们选择“疑难解答”。  4.我们点击“重置此电脑”选项。

Windows 11 Recovery USB:下载、安装和创建Windows 11 Recovery USB:下载、安装和创建Jul 05, 2023 pm 01:05 PM

您的PC有时会遇到问题,导致难以正常启动。在这种情况下,您可以使用Windows11恢复USB恢复它。虽然这一切看起来简单明了,但您仍然需要知道如何创建和使用恢复USB。在本指南中,我们将引导您完成轻松执行此任务所需的步骤。我可以下载Windows11恢复USB吗?如果您的操作系统完全崩溃,您可以从另一台运行良好的PC下载Windows11恢复USB。但是,要从中创建恢复驱动器的电脑必须与你的电脑具有相同的体系结构。最好的选择仍然是在PC正常运行时从PC创建USB。这消除了任何兼容性风险。或者,

windows7键盘失灵应该怎么办windows7键盘失灵如何恢复windows7键盘失灵应该怎么办windows7键盘失灵如何恢复Jul 15, 2023 am 09:21 AM

有一些笔记本windows7顾客遇到了键盘失灵的情况,导致很多操作过程都不能进行,这种事情要怎么办呢?如果只是一部分功能按键不能使用得话,你可以尝试消除功能按键。若不是得话,你也就打开系统属性提示框,进入网络适配器,之后找寻电脑的键盘机械设备,鼠标点击选择升级驱动程序,以后按照步骤去重装一下电脑键盘的驱动程序就能够。windows7键盘失灵应该怎么办:一、消除笔记本键盘看一下是不是具备一些键按下去没法弹上来,这种事情还会继续导致其他键不能用;二、修改笔记本驱动1.依据“我的电脑”打开系统属性,选

教大家win7电脑怎么恢复出厂设置教大家win7电脑怎么恢复出厂设置Jul 12, 2023 pm 03:09 PM

出厂设置恢复到出厂时的默认状态,删除所有的文件和软件。在手机上很多朋友都会设置出厂设置,那么你们知道电脑如何恢复出厂设置吗?下面小编就以win7为例和大家分享一下过程吧。1、首先打开下电脑,看到win7图标点开。2、接着我们打开下【控制面板】。3、然后我们找到【系统】点击并打开。4、在系统窗口中我们点击【系统保护】。5、接着我们选择【系统还原】选项。6、接着我们来到这个界面,点击下一步即可。7、选择还原点,一般都是默认的初始的状态。8、最后我们来到这个界面,点击完成就可以进入到还原过程。以上就是

win11改win10系统教程的详细介绍win11改win10系统教程的详细介绍Jul 08, 2023 pm 09:21 PM

微软6月24号正式公布了win11系统,可以看到用户界面、开始菜单等和Windows10X中发现的非常相似。有的朋友在使用预览版的时候发现用的不习惯,想要改win10系统开使用,那么我们要如何操作呢,下面我们就来看看win11改win10系统教程,一起来学习一下吧。1、第一步是从Windows11打开新设置。在这里,您需要转到图像中显示的系统设置。2、在系统设置下,选择“恢复”选项。在这里,您将能够看到“以前版本的窗口”选项。您还可以在它旁边看到一个“返回”按钮,单击此按钮。3、您可以指定要返回

如何使用ThinkPHP6实现数据库备份与恢复如何使用ThinkPHP6实现数据库备份与恢复Jun 20, 2023 pm 07:25 PM

在开发业务系统过程中,数据库是非常重要的一环。因此,对数据库进行备份和恢复是非常必要的操作。本文将结合ThinkPHP6框架实例,介绍如何使用ThinkPHP6实现数据库备份与恢复。一、数据库备份1.1环境准备在进行数据库备份之前,需要确认如下几点:1、需要设置好mysql数据库的bin目录地址,并把其路径加入系统Path变量中;2、需要安装好mysqld

如何应对Linux系统中的文件系统损坏和恢复问题如何应对Linux系统中的文件系统损坏和恢复问题Jun 29, 2023 pm 08:01 PM

如何应对Linux系统中的文件系统损坏和恢复问题在使用Linux系统时,由于各种原因,文件系统可能会遭受损坏,这可能导致数据丢失和系统无法正常运行。因此,我们需要知道如何应对文件系统损坏和恢复问题,以保护我们的数据和系统的稳定性。如何判断文件系统是否损坏?当文件系统受损时,将会出现一些明显的迹象。例如,文件或文件夹无法访问、文件大小异常、系统启动慢或无法启动

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software