修复mysql数据库

----转载自:http://www.cnblogs.com/end/archive/2011/07/20/2111888.html

 

在DOS窗口跳转到mysql的bin目录后,执行下面的修复指令即可:

mysql 进程在一个写入中被杀死、计算机意外关闭、硬件错误都能造成mysql表损坏 。

mysql 修复表的各种方法

1、mysqlcheck 进行表修复

使用mysqlcheck 命令对表进行修复

#mysqlcheck -uuser -ppassword database  table  -c  #检查单个表是否损坏

#mysqlcheck -uuser -ppassword database  -c  #检查整个库那些表损坏

首先检查数据库的那些表损坏,如果能定位到那张表损坏可以直接对表修复

#mysqlcheck -uuser -ppassword database  table  -r # 修复数据表

#mysqlcheck -uuser -ppassword database   -r # 修复整个数据库

更多参数 查看 mysqlcheck –help

2、myisamchk 修复mysql表

Myisamchk是MyISAM表维护的一个非常实用的工具。可以使用myisamchk实用程序来获得有关数据库表的信息或检查、修复、优化他们。myisamchk适用MyISAM表(对应.MYI和.MYD文件的表)。

Myisamchk 选项解释

–debug=debug_options, -# debug_options
输出调试记录文件。debug_options字符串经常是’d:t:o,filename’。

–silent,-s
沉默模式。仅当发生错误时写输出。

–wait, -w
如果表被锁定,不是提示错误终止,而是在继续前等待到表被解锁。
如果不使用–skip-external-locking,可以随时使用myisamchk来检查表。当检查表时,所有尝试更新表的客户端将等待,直到myisamchk准备好可以继续。
请注意如果用–skip-external-locking选项运行mysqld,只能用另一个myisamchk命令锁定表。

–var_name=value
可以通过–var_name=value选项设置下面的变量:

–check, -c
检查表的错误。如果你不明确指定操作类型选项,这就是默认操作。

–check-only-changed, -C
只检查上次检查后有变更的表。

–extend-check, -e
非常仔细地检查表。如果表有许多索引将会相当慢。

–fast,-F
只检查没有正确关闭的表。

–force, -f
如果myisamchk发现表内有任何错误,则自动进行修复。

–information, -i
打印所检查表的统计信息。

–medium-check, -m
比–extend-check更快速地进行检查。只能发现99.99%的错误

–update-state, -U
将信息保存在.MYI文件中,来表示表检查的时间以及是否表崩溃了。该选项用来充分利用–check-only-changed选项,
但如果mysqld服务器正使用表并且正用–skip-external-locking选项运行时不应使用该选项。

–read-only, -T
不要将表标记为已经检查。如果你使用myisamchk来检查正被其它应用程序使用而没有锁定的表很有用

–backup, -B
将.MYD文件备份为file_name-time.BAK

–character-sets-dir=path
字符集安装目录。

–correct-checksum
纠正表的校验和信息。

–data-file-length=len, -D len
数据文件的最大长度

–extend-check,-e
进行修复,试图从数据文件恢复每一行。一般情况会发现大量的垃圾行。不要使用该选项,除非你不顾后果。

–force, -f
覆盖旧的中间文件(文件名类似tbl_name.TMD),而不是中断

–keys-used=val, -k val
对于myisamchk,该选项值为位值,说明要更新的索引。选项值的每一个二进制位对应表的一个索引,其中第一个索引对应位0。
选项值0禁用对所有索引的更新,可以保证快速插入。通过myisamchk -r可以重新激活被禁用的索引。

–parallel-recover, -p
与-r和-n的用法相同,但使用不同的线程并行创建所有键。

–quick,-q
不修改数据文件,快速进行修复。

–recover, -r
可以修复几乎所有一切问题,除非唯一的键不唯一时(对于MyISAM表,这是非常不可能的情况)。如果你想要恢复表,
这是首先要尝试的选项。如果myisamchk报告表不能用-r恢复,则只能尝试-o。
在不太可能的情况下-r失败,数据文件保持完好)。

–safe-recover, -o
使用一个老的恢复方法读取,按顺序读取所有行,并根据找到的行更新所有索引树。这比-r慢些,
但是能处理-r不能处理的情况。该恢复方法使用的硬盘空间比-r少。一般情况,你应首先用-r维修,如果-r失败则用-o。

–sort-recover, -n
强制myisamchk通过排序来解析键值,即使临时文件将可能很大。

–analyze,-a
分析键值的分布。这通过让联结优化器更好地选择表应该以什么次序联结和应该使用哪个键来改进联结性能。
要想获取分布相关信息,使用myisamchk –description –verbose tbl_name命令或SHOW KEYS FROM tbl_name语句。

–sort-index, -S
以从高到低的顺序排序索引树块。这将优化搜寻并且将使按键值的表扫描更快。

–set-auto-increment[=value], -A[value]
强制从给定值开始的新记录使用AUTO_INCREMENT编号(或如果已经有AUTO_INCREMENT值大小的记录,应使用更高值)。
如果未指定value,新记录的AUTO_INCREMENT编号应使用当前表的最大值加上1。

–description, -d
打印出关于表的描述性信息。

检查表

[root@nagios test]# myisamchk -e wpusers.MYI
Checking MyISAM file: wpusers.MYI
Data records:       1   Deleted blocks:       0
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1
- check data record references index: 2
- check data record references index: 3
- check records and index references

myisanchk修复表

[root@nagios test]# myisamchk -r wpusers.MYI
- recovering (with sort) MyISAM-table ‘wpusers.MYI’
Data records: 1
- Fixing index 1
- Fixing index 2
- Fixing index 3

3、自动修复mysql 表脚本

#!/bin/bash
#This script edit by badboy connect leezhenhua17@163.com
#This script used by repair tables
mysql_host=localhost
mysql_user=root
mysql_pass=123456
database=test

tables=$(mysql -h$mysql_host -u$mysql_user -p$mysql_pass $database -A -Bse “show tables”)
for arg in $tables
do
check_status=$(mysql -h$mysql_host -u$mysql_user -p$mysql_pass $database -A -Bse “check table $arg” | awk ‘{ print $4 }’)
if [ "$check_status" = "OK" ]
then
echo “$arg is ok”
else
echo $(mysql -h$mysql_host -u$mysql_user -p$mysql_pass $database -A -Bse “repair table $arg”)

fi
echo $(mysql -h$mysql_host -u$mysql_user -p$mysql_pass $database -A -Bse “optimize table $arg”)
done

希望能帮助大家,如果文章中有错误的请指出 。

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://www.colderboy.com/archives/28.html

 

 

----转载自:http://www.cnblogs.com/end/archive/2011/07/20/2111888.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL数据库修复软件是一种专门用于修复MySQL数据库中的损坏损坏的数据的工具。它具有以下功能和特点。 首先,MySQL数据库修复软件具有快速和高效的修复功能。它可以自动检测和修复数据库文件中的错误和损坏。通过使用先进的算法和技术,它可以有效地修复损坏的索引、损坏的数据文件和其他常见的数据库错误。 其次,MySQL数据库修复软件具有用户友好的界面和步骤指南。它提供了一个直观和易于使用的界面,让用户能够轻松地进行修复操作。此外,它还提供了详细的步骤指南,让用户可以逐步执行修复过程,并提供了错误提示和建议,以帮助用户更好地理解和解决问题。 第三,MySQL数据库修复软件具有可靠的数据恢复能力。它可以从损坏损坏数据库文件中恢复丢失的数据,并确保数据的完整性和准确性。无论是意外删除、错误操作、硬件故障还是其他原因导致的数据丢失,该软件都能帮助用户找回数据,并确保其完好无损。 最后,MySQL数据库修复软件还具有灵活性和可定制性。它可以根据用户的需求和要求进行配置和定制,以满足不同的修复需求。用户可以选择恢复特定的表、特定的数据或整个数据库,以及调整其他参数和选项,以达到更好的修复效果。 总的来说,MySQL数据库修复软件是一个强大而实用的工具,可以有效地修复损坏MySQL数据库并恢复丢失的数据。它不仅具有快速和高效的修复功能,而且还具有用户友好的界面和步骤指南,可靠的数据恢复能力以及灵活性和可定制性。无论是个人用户还是企业用户,在面对MySQL数据库问题时,这款软件都是一个理想的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值