广告
返回顶部
首页 > 资讯 > 数据库 >MySQL数据库中怎么修复.frm文件、.MYD文件和.MYI文件
  • 267
分享到

MySQL数据库中怎么修复.frm文件、.MYD文件和.MYI文件

2024-04-02 19:04:59 267人浏览 安东尼
摘要

这篇文章给大家介绍Mysql数据库中怎么修复.frm文件、.MYD文件和.MYI文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。  mysql数据库.frm文件、.MYD文件和.MY

这篇文章给大家介绍Mysql数据库中怎么修复.frm文件、.MYD文件和.MYI文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

  mysql数据库.frm文件、.MYD文件和.MYI文件怎么修复

  要检查一个表的错误,只需要运行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将对表文件执行普通的检查。如果你对一个表有怀疑,但是普通的检查不能发现任何错误,你可以执行更彻底的检查(但是也更慢!),这需要使用--extend-check选项:

  %myisamchk--extend-check/path/to/tblName

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

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

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

  D:\DocumentsandSettings\Administrator>c:C:\>cdmysqlC:\mysql>cddataC:\mysql\data>cdhw_enterpriceC:\mysql\data\hw_enterprice>myisamchkfunction_products.frm

  'myisamchk'不是内部或外部命令,也不是可运行的程序或批处理文件。

  C:\mysql\data\hw_enterprice>cd\C:\>cdmysqlC:\mysql>cdbin

  注:查看myisamchk的帮助信息

  C:\mysql\bin>myisamchkmyisamchkVer2.6forWin95/Win98ati32ByMonty,foryourprofessionaluseThissoftwarecomeswithNOWARRANTY:seethePUBLICfordetails.Description,checkandrepairofISAMtables.UsedwithoutoptionsalltablesonthecommandwillbecheckedforerrorsUsage:myisamchk[OPTIONS]tables[.MYI]Globaloptions:-#,--debug=...Outputdebuglog.Oftenthisis'd:t:o,filename'-,--helpDisplaythishelpandexit.-O,--set-variablevar=optionChangethevalueofavariable.Pleasenotethatthisoptionisdeprecated;youcansetvariablesdirectlywith'--variable-name=value'.-t,--tmpdir=pathPathfortemporaryfiles-s,--silentOnlyprinterrors.Onecanusetwo-stomakemyisamchkverysilent-v,--verbosePrintmoreinfORMation.Thiscanbeusedwith--descriptionand--check.Usemany-vformoreverbosity!-V,--versionPrintversionandexit.-w,--waitWaitiftableislocked.Checkoptions(checkisthedefaultactionformyisamchk):-c,--checkChecktableforerrors-e,--extend-checkCheckthetableVERYthroughly.Onlyusethisinextremecasesasmyisamchkshouldnormallybeabletofindoutifthetableisokevenwithoutthisswitch-F,--fastCheckonlytablesthathaven'tbeenclosedproperly-C,--check-only-changedCheckonlytablesthathavechangedsincelastcheck-f,--forceRestartwith'-r'ifthereareanyerrorsinthetable.Stateswillbeupdatedaswith'--update-state'-i,--informationPrintstatisticsinformationabouttablethatischecked-m,--medium-checkFasterthanextend-check,butonlyfinds99.99%ofallerrors.ShouldbeGoodenoughformostcases-U--update-stateMarktablesascrashedifyoufindanyerrors-T,--read-onlyDon'tmarktableascheckedRepairoptions(Whenusing'-r'or'-o')-B,--backupMakeabackupofthe.MYDfileas'filename-time.BAK'--correct-checksumCorrectchecksuminformationfortable.-D,--data-file-length=#Maxlengthofdatafile(whenrecreatingdatafilewhenit'sfull)-e,--extend-checkTrytorecovereverypossiblerowfromthedatafileNormallythiswillalsofindalotofgarbagerows;Don'tusethisoptionifyouarenottotallydesperate.-f,--forceOverwriteoldtemporaryfiles.-k,--keys-used=#TellMyISAMtoupdateonlysomespecifickeys.#isabitmaskofwhichkeystouse.Thiscanbeusedtogetfasterinserts!-r,--recoverCanfixalmostanythingexceptuniquekeysthataren'tunique.-n,--sort-recoverForcesrecoveringwithsortingevenifthetemporaryfilewouldbeverybig.-p,--parallel-recoverUsesthesametechniqueas'-r'and'-n',butcreatesallthekeysinparallel,indifferentthreads.THISISALPHACODE.USEATYOUROWNRISK!-o,--safe-recoverUsesoldrecoverymethod;Slowerthan'-r'butcanhandleacoupleofcaseswhere'-r'reportsthatitcan'tfixthedatafile.--character-sets-dir=...Directorywherecharactersetsare--set-character-set=nameChangethecharactersetusedbytheindex-q,--quickFasterrepairbynotmodifyingthedatafile.Onecangiveasecond'-q'toforcemyisamchktomodifytheoriginaldatafileincaseofduplicatekeys-u,--unpackUnpackfilepackedwithmyisampack.Otheractions:-a,--analyzeAnalyzedistributionofkeys.WillmakesomejoinsinMySQLfaster.Youcancheckthecalculateddistributionbyusing'--description--verbosetable_name'.-d,--descriptionPrintssomeinformationabouttable.-A,--set-auto-increment[=value]Forceauto_incrementtostartatthisorhighervalueIfnovalueisgiven,thensetsthenextauto_incrementvaluetothehighestusedvaluefortheautokey+1.-S,--sort-indexSortindexblocks.Thisspeedsup'read-next'inapplications-R,--sort-records=#Sortrecordsaccordingtoanindex.ThismakesyourdatamuchmorelocalizedandmayspeedupthingsC:\mysql\bin>myisamchkc:\mysql\data\hw_enterprice\function_products.frmmyisamchk:error:'c:\mysql\data\hw_enterprice\function_products.frm'isnotaMyISAM-tableC:\mysql\bin>myisamchkc:\mysql\data\hw_enterprice\function_products.myiCheckingMyISAMfile:c:\mysql\data\hw_enterprice\function_products.myiDatarecords:85207Deletedblocks:39myisamchk:warning:Tableismarkedascrashedmyisamchk:warning:1clientsisusingorhasn'tclosedthetableproperly-checkfile-size-checkkeydelete-chain-checkrecorddelete-chainmyisamchk:error:recorddelete-link-chaincorrupted-checkindexreference-checkdatarecordreferencesindex:1-checkdatarecordreferencesindex:2-checkdatarecordreferencesindex:3-checkrecordlinksmyisamchk:error:Wrongbytesec:0-195-171atlinkstart:841908MyISAM-table'c:\mysql\data\hw_enterprice\function_products.myi'iscorruptedFixitusingswitch"-r"or"-o"

  继续进行操作:

  C:\mysql\bin>myisamchk--recover--quickc:\mysql\data\hw_enterprice\function_products.myi-checkkeydelete-chain-checkrecorddelete-chainmyisamchk:error:recorddelete-link-chaincorruptedmyisamchk:error:Quick-recoveraborted;Runrecoverywithoutswitch'q'UpdatingMyISAMfile:c:\mysql\data\hw_enterprice\function_products.myiMyISAM-table'c:\mysql\data\hw_enterprice\function_products.myi'isnotfixedbecauseoferrorsTryfixingitbyusingthe--safe-recover(-o)orthe--force(-f)option

  系统提示我使用--safe-recover(-o)orthe--force(-f)option进行修复操作,于是

  C:\mysql\bin>myisamchk--safe-recoverc:\mysql\data\hw_enterprice\function_products.myi-recovering(withkeycache)MyISAM-table'c:\mysql\data\hw_enterprice\function_products.myi'Datarecords:85207Wrongbytesec:0-195-171at841908;SkippedDatarecords:85215

  MySQL数据库.frm文件、.MYD文件和.MYI文件怎么修复

  将修复后的物理文件复制到mysql\data下之后,通过PHPMyAdmin进行访问,OK正常!

  本次数据修复操作成功,数据已被正常恢复,总计85215条记录,其中恢复数据共计85207条。

  总结本次经验及查找资料,如下:

  当你试图修复一个被破坏的表的问题时,有三种修复类型。如果你得到一个错误信息指出一个临时文件不能建立,删除信息所指出的文件并再试一次--这通常是上一次修复操作遗留下来的。

  这三种修复方法如下所示:

  %myisamchk--recover--quick/path/to/tblName%myisamchk--recover/path/to/tblName%myisamchk--safe-recover/path/to/tblName

  第一种是最快的,用来修复最普通的问题;而最后一种是最慢的,用来修复一些其它方法所不能修复的问题。

  检查和修复MySQL数据文件

  如果上面的方法无法修复一个被损坏的表,在你放弃之前,你还可以试试下面这两个技巧:

  如果你怀疑表的索引文件(*.MYI)发生了不可修复的错误,甚至是丢失了这个文件,你可以使用数据文件(*.MYD)和数据格式文件(*.frm)重新生成它。首先制作一个数据文件(tblName.MYD)的拷贝。重启你的MySQL服务并连接到这个服务上,使用下面的命令删除表的内容:mysql>DELETEFROMtblName;

  在删除表的内容的同时,会建立一个新的索引文件。退出登录并重新关闭服务,然后用你刚才保存的数据文件(tblName.MYD)覆盖新的(空)数据文件。最后,使用myisamchk执行标准的修复(上面的第二种方法),根据表的数据的内容和表的格式文件重新生成索引数据。

  如果你的表的格式文件(tblName.frm)丢失了或者是发生了不可修复的错误,但是你清楚如何使用相应的CREATETABLE语句来重新生成这张表,你可以重新生成一个新的.frm文件并和你的数据文件和索引文件(如果索引文件有问题,使用上面的方法重建一个新的)一起使用。首先制作一个数据和索引文件的拷贝,然后删除原来的文件(删除数据目录下有关这个表的所有记录)。

  启动MySQL服务并使用当初的CREATETABLE文件建立一个新的表。新的.frm文件应该可以正常工作了,但是最好你还是执行一下标准的修复(上面的第二种方法)。

关于MySQL数据库中怎么修复.frm文件、.MYD文件和.MYI文件就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL数据库中怎么修复.frm文件、.MYD文件和.MYI文件

本文链接: https://www.lsjlt.com/news/56798.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL数据库中怎么修复.frm文件、.MYD文件和.MYI文件
    这篇文章给大家介绍MySQL数据库中怎么修复.frm文件、.MYD文件和.MYI文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。  MySQL数据库.frm文件、.MYD文件和.MY...
    99+
    2022-10-18
  • MySQL 利用frm文件和ibd文件恢复表数据
    frm文件和ibd文件简介    在MySQL中,如果我们使用了默认的存储引擎innodb创建一张表,那么在文件夹下面就会出现表名.frm和表名.ibd两个文件,如果我们使用的是Myisam存储引...
    99+
    2022-05-13
    MySQL 恢复表数据 MySQL frm文件 MySQL ibd文件
  • mysql通过.frm和.ibd 文件恢复数据库
     问题背景:由于强制在服务关闭mysql导致部分数据表以及数据丢失 如下图只有.frm .ibd的文件为我的问题文件 查找不到表结构和表数据目录D:XXXX\mysql-5.7.24-winx64\data\mydata  从frm文件中...
    99+
    2023-09-21
    数据库 mysql
  • 通过.frm和.idb文件恢复mysql数据库
    本文对该文章进行参考,地址https://baijiahao.baidu.com/sid=1675966756498698574&wfr=spider&for=pc 现在有一个数据库需要恢复,已经获取到.frm和.ibd文件 这些文件即...
    99+
    2021-12-18
    通过.frm和.idb文件恢复mysql数据库
  • mysql的frm文件报错怎么修复
    本文小编为大家详细介绍“mysql的frm文件报错怎么修复”,内容详细,步骤清晰,细节处理妥当,希望这篇“mysql的frm文件报错怎么修复”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新...
    99+
    2022-10-19
  • MySQL 5.7 通过frm和ibd文件恢复数据
    MySQL 5.7 通过解析frm和ibd文件恢复数据 .frm文件存储表结构 .ibd文件存储数据 以恢复表IP_PATENT_APPLICANT_LIST为例, 有待恢复表文件IP_PATENT_...
    99+
    2023-10-20
    mysql 数据库 java
  • Mysql怎么根据.frm和.idb文件恢复表结构
    这篇文章主要介绍“Mysql怎么根据.frm和.idb文件恢复表结构”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Mysql怎么根据.frm和.idb文件恢复表结构”文章能帮助大家解决问题。根据.f...
    99+
    2023-07-05
  • 【mysql数据损坏,通过ibd和frm文件批量恢复数据库数据】
    问题描述 客户那边的测试服务器下午3:00左右因不明原因,所有服务访问不了,ssh也无法连接,客户手动进行强制重启服务器,重启后将所有应用、中间件重启,重启nacos时发现无法连接数据库,通过账号密码...
    99+
    2023-09-02
    数据库 mysql
  • Mysql之如何根据.frm和.idb文件恢复表结构
    目录根据.frm和.idb文件恢复表结构如何根据.frm和.idb文件恢复表结构呢第一步:下载安装MYSQL Utilities工具第二步:使用.frm文件恢复表结构第三步:使用.i...
    99+
    2023-03-08
    Mysql .frm文件 Mysql .idb文件 Mysql恢复表结构
  • MySQL中怎么修复配置文件
    MySQL中怎么修复配置文件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。错误和解决方案无法连接到远程服务器:首先要验证DNA配置的设置,并确...
    99+
    2022-10-18
  • mysql中怎么导入数据库文件
    mysql中怎么导入数据库文件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.停止mysql服务(管理工具——服务,或者DOS命令net s...
    99+
    2022-10-18
  • Nodejs中怎么复制文件和文件夹
    Nodejs中怎么复制文件和文件夹,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.使用fs复制文件使用fs对象的readFileSync...
    99+
    2022-10-19
  • 怎么在Linux中修改MySQL数据库数据文件路径
    今天就跟大家聊聊有关怎么在Linux中修改MySQL数据库数据文件路径,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。步骤:1、创建目标路径mkdir...
    99+
    2022-10-18
  • mysql怎么实现将data文件直接导入数据库文件
    这篇“mysql怎么实现将data文件直接导入数据库文件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起...
    99+
    2023-03-09
    mysql data 数据库
  • MySQL中怎么利用ibd文件恢复数据
    MySQL中怎么利用ibd文件恢复数据,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。#创建表CREATE TABLE `i...
    99+
    2022-10-18
  • mysql数据库my.ini配置文件中文说明
    这篇文章主要介绍“mysql数据库my.ini配置文件中文说明”,在日常操作中,相信很多人在mysql数据库my.ini配置文件中文说明问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2022-10-18
  • Linux中怎么修复inittab文件
    Linux中怎么修复inittab文件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。第一种修复办法如下(有备份的情况下):事先将/etc/inittab备份为/...
    99+
    2023-06-13
  • MySQL中怎么维护数据库日志文件
    MySQL中怎么维护数据库日志文件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。由于日志文件是恢复数据的重要参考,因此日志文件的维护也有十分重...
    99+
    2022-10-18
  • MYSQL中怎么更改数据库文件路径
    本篇文章为大家展示了MYSQL中怎么更改数据库文件路径,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 首先,停止MySQL的服务。开始--运行--serv...
    99+
    2022-10-18
  • Mysql怎么通过ibd文件恢复数据
    这篇文章主要介绍了Mysql怎么通过ibd文件恢复数据的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Mysql怎么通过ibd文件恢复数据文章都会有所收获,下面我们一起来看看吧。恢复步骤1、创建数据库(随意创建)...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作