教你如何修复MySQL数据库
我经常使用这个代码,并直接把它放在MySQL数据库目录中。
复制代码代码如下所示:
CMD / k myisamchk -r jb51_tablename
jb51_tablename是jb51_tablename.myd.it名称可以运行下面的。
有时由于电源故障或其他原因导致数据库损坏。我们可以使用MySQL的mysqlcheck命令快速修复所有的数据库或者特定的数据库,例如。
检查以优化和修复所有数据库:
1。首先,在运行时输入CMD,然后启动命令行。
2、输入mysql的bin目录:程序文件mysql Server 5。如果你不知道如何进入其他目录,你需要参考在线材料的基本知识。
常见的方式:
得润电子:
运行CD 程序文件MySQL服务器5
三.兼营:mysqlcheck - O - R -中- p888888
注意,将888888更改为您自己的root用户密码
mysql.columns_priv好
mysql.db好
mysql.func好
mysql.help_category好
mysql.help_keyword好
mysql.help_relation好
mysql.help_topic好
mysql.host好
mysql.tables_priv好
mysql.time_zone好
mysql.time_zone_leap_second好
mysql.time_zone_name好
mysql.time_zone_transition好
mysql.time_zone_transition_type好
mysql.user好
......
......
......
小心!
在修复过程中,如果出现一个错误,说明此表不好,不能修复,用坏表的数据库,可以删除或停止它,否则会影响MySQL的整体稳定性,由mysql自动停止造成。(该表的存储引擎不支持修复表不需要处理)
如果修复速度太快看不到结果,它可以运行。
mysqlcheck - O - R -中- p888888 > > C: test.txt
当你运行下的test.txt,你可以看到它。
U3000 U3000
1、myisamchk
对myisamchk使用必须暂时停止MySQL服务器。例如,我们想修改Discuz数据库,则执行以下操作:
复制代码代码如下所示:
# mysql服务停止(MySQL);
# myisamchk -r /绝对的数据库文件的路径 / *我
#启动mysql服务
myisamchk自动检查和修复错误在数据表索引。
2、mysqlcheck
mysqlcheck的使用不需要停止MySQL和可用于热修复,操作步骤如下:
U3000 U3000
> # mysqlcheck -R Discuz *。
Xiaobi提醒:无论myisamchk或mysqlcheck,不要使用-f修复一般。- f参数将被删除时,部分的一般维修不能成功。因此,不能不但不使用F。
以下是补编:
受损表的症状通常是对意外中断的查询,您可以看到这样的错误,例如:
的tbl_name.frm被锁定,不能改变。
我找不到文件tbl_name.myi(errcode:# # #)。
从处理器错误# # #表(此时,错误135是一个例外)。
意外文件的结尾。
记录文件被销毁。
在这些情况下,你要修表。该表的修复是一个非常困难的工作,在许多情况下,它是很难做到的。但是,也有一些传统的思路和流程,遵循他们增加机会修改表。通常,它开始以最快的修复方法,以看看口袋里的故障是可能的。如果发现不成功,你可以逐步升级到更彻底,但速度较慢,修复方法。如果仍然难以解决,应该从备份恢复。本节详细描述了在前一章。
简易安全修复
要修复一个表,执行以下步骤:
第一种方法是使用恢复- R选项、更正表和快速选项,仅根据索引文件内容恢复。这不涉及修复索引文件的数据文件。(r表示恢复模式)
myisamchk - R Q tbl_name
isamchk·R·Q tbl_name
如果该问题仍然存在,则快速选项将被忽略,允许修复程序修改数据文件,因为这可能是一个问题:
myisamchk -r tbl_name
isamchk R tbl_name
如果前一步失败,安全恢复模式将使用旧的恢复方法处理少数情况(但更慢),传统的恢复模式不好。
myisamchk --安全恢复tbl_name
isamchk --安全恢复tbl_name
一个艰难的修复
如果索引文件的第一16k块被破坏,或包含不正确的信息,或如果索引文件丢失,你只应该到这个阶段。在这种情况下,有必要创建一个新的索引文件。按照这样的步骤如下:
包含折叠表数据库目录的位置。
数据文件在某个地方更安全。
我使用一个表描述文件来创建一个新的(空的)数据和索引文件:
壳> MySQL db_namemysql >删除>退出MySQL tbl_name;
上面的语句将创建新的空表,重新生成新的数据和索引文件使用表的描述文件tbl_name.frm。
旧的数据文件被复制到新创建的数据文件中。
在修法的标准。如今myisamchk - R Q应该工作。(这不应该是一个无限循环)。
如果您有一个备份表,它就容易得多。从备份文件中,您可以恢复表的描述文件,然后检查表,可以继续使用标准的修复方法,它应该能够解决这个问题。
非常困难的修理
只有描述文件也被损坏,您应该在这个阶段到达。这不应该发生,因为在创建表时,描述文件不再更改。
从备份中恢复并返回到2阶段的描述文件,也可以恢复索引文件并返回到1阶段。对于后者,你应该开始用myisamchk - R.
如果由于某种原因,数据备份文件丢失或没有备份文件,但您还记得表的创建表语句的创建,这很好,这样我们仍然可以恢复索引文件。
包含折叠表数据库目录的位置。
数据文件在某个地方更安全。然后删除数据库目录中相应的目录。
我们调用mysql创建表来建立复杂的语句表。
将MySQL退出,将原始数据文件和索引文件返回到数据库目录,只需替换新文件即可。
然后,他返回到第2阶段,修复表。您还可以移动到数据文件中,以便保留新的描述和索引文件,然后返回到第1阶段,并继续以标准方式修复表。