于断电或非正常关机而导致MySQL数据库出现错误是非常常见的问题。有两种方法,一种方法使用MySQL的check table和repair table 的sql语句,另一种方法是使用MySQL提供的多个myisamchk, isamchk数据检测恢复工具。前者使用起来比较简便。推荐使用。
1. check table 和 repair table
登陆MySQL 终端:
MySQL -uxxxxx -p dbname
> check table tabTest;
如果出现的结果说Status是OK,则不用修复,如果有Error,可以用:
> repair table tabTest;
进行修复,修复之后可以在用check table命令来进行检查。在新版本的phpMyAdmin里面也可以使用check/repair的功能。
2. myisamchk, isamchk
其中myisamchk适用于MYISAM类型的数据表,而isamchk适用于ISAM类型的数据表。这两条命令的主要参数相同,一般新的系统都使用MYISAM作为缺省的数据表类型,这里以myisamchk为例子进行说明。当发现某个数据表出现问题时可以使用:
myisamchk tablename.MYI
进行检测,如果需要修复的话,可以使用:
myisamchk -of tablename.MYI
关于myisamchk的详细参数说明,可以参见它的使用帮助。需要注意的时在进行修改时必须确保MySQL服务器没有访问这个数据表,保险的情况下是最好在进行检测时把MySQL服务器Shutdown掉。
-----------------------------
另外可以把下面的命令放在你的rc.local里面启动MySQL服务器前:
[ -x /tmp/MySQL.sock ] && /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI
其中的/tmp/MySQL.sock是MySQL监听的Sock文件位置,对于使用RPM安装的用户应该是/var/lib/MySQL/MySQL.sock,对于使用源码安装则是/tmp/MySQL.sock可以根据自己的实际情况进行变更,而pathtochk则是myisamchk所在的位置,DATA_DIR是你的MySQL数据库存放的位置。
需要注意的时,如果你打算把这条命令放在你的rc.local里面,必须确认在执行这条指令时MySQL服务器必须没有启动!
检测修复所有数据库(表)
MySQLcheck -A -o -r -p
分享到:
相关推荐
MySQL报警,从库的数据库挂了,一直在不停的重启,打开错误日志,发现有张表坏了。innodb表损坏不能通过repair table 等修复myisam的命令操作。
MySQL数据库修复程序是一种技术密集型的过程,主要用于解决数据库在运行过程中遇到的各种问题,如数据丢失、表损坏、系统崩溃等。在本场景中,我们关注的是如何通过特定工具,如Navicat,来管理和修复MySQL数据库中...
本文主要分析了MySQL数据表损坏的原因,并提供了相应的预防措施和修复方法。 1. **数据表损坏的原因**: - 服务器突然断电:电源中断可能会导致数据文件未完成写入,从而造成损坏。 - 强制关机:在没有正常关闭...
在这种情况下,了解如何正确修复损坏的MySQL数据表是至关重要的。 首先,我们可以通过MySQL内置的SQL语句来检查和修复数据表。登录到MySQL服务器,使用`mysql -uusername -ppassword -hhostname`命令,其中`...
当遇到诸如数据损坏、表结构错误等问题时,能够快速有效地进行表修复至关重要。本文将详细探讨“mysql表修复的实用命令”,并结合具体实例进行深入分析。 ### MySQL表修复的重要性 MySQL作为一款广泛使用的开源...
可以使用`REPAIR TABLE`命令尝试修复损坏的表,但这需要数据库能够正常启动。如果数据库启动不了,可能需要借助第三方工具或MySQL的专用修复功能,如`mysqlcheck`。 7. **监控与预防**: 为了避免类似问题再次...
MySQL数据库修复大师是一款专业的数据库恢复工具,专为MySQL用户提供服务,旨在帮助用户在遇到数据库损坏、数据丢失等问题时,能够高效、准确地恢复重要的数据库信息。这款软件通过深入解析MySQL的数据存储格式,...
然而,数据库系统由于各种原因,如硬件故障、软件错误、意外删除等,可能会出现数据损坏或无法正常运行的情况,这时就需要专业的数据库修复技术来解决问题。"mysql数据库修复专家"就是针对这种需求的专业工具,它...
1. **REPAIR TABLE命令**:MySQL提供了内置的`REPAIR TABLE`命令,它试图修复损坏的表。此命令可以与`QUICK`、`EXTENDED`和`USE_FRM`等选项一起使用,以适应不同的修复场景。例如,`REPAIR TABLE table_name QUICK;`...
由于MySQL服务已停止,此命令可以尝试修复损坏的表。 5. 修复完成后,启动MySQL服务。在CMD中输入`net start mysql`,让MySQL服务恢复正常运行。 6. 最后,尝试通过mysqlcheck工具进一步检查和修复数据库。使用...
通过先进的算法和深度扫描技术,它能够深入到数据库的底层,找出并修复损坏的记录,确保数据的完整性和一致性。 首先,我们需要了解数据库修复的基本过程。通常,这涉及到备份恢复、日志回滚、表结构检查和数据导入...
本文将详细阐述一个由于非法硬件关机导致MySQL数据表损坏的实例,以及如何进行故障排查和修复。 首先,问题的现象是用户访问网页时收到错误提示,无法连接到数据库。这通常意味着MySQL服务无法正常启动或运行。通过...
一:MySQL中MyISAM表损坏原因总结: 1、 服务器突然断电导致数据文件损坏;强制关机,没有先关闭mysql 服务;mysqld 进程在写表时被杀掉。 2、 磁盘损坏。 3、 服务器死机。 4、 mysql 本身的bug 。 二:MySQL中MyISAM...
4. **修复InnoDB表空间**:如果确认问题是由于"ibdata1" 文件损坏,可以尝试使用`mysqlcheck` 工具进行修复。命令格式通常是 `mysqlcheck -c -r -u username -p database_name`,这会检查并修复数据库中的所有表。 ...
在MySQL中,.myd(MYDatar)文件存储了表的实际数据,而.myi(MYIndex)文件则包含了表的索引。当这些文件受到损坏,例如由于硬件故障、病毒感染或不正确的关闭数据库时,可能导致无法正常访问数据库。MySQL数据库...
在这种情况下,`mysqlcheck.exe`工具就显得尤为重要,它是MySQL提供的一种实用程序,专门用于检查、修复、优化和分析MySQL数据库中的表。 `mysqlcheck.exe`是一个命令行工具,它能够执行多种功能,包括: 1. **...
为了解决这个问题,MySQL还提供了mysqlcheck工具,它可以在线(热修复)检查和修复InnoDB和MyISAM表。 使用mysqlcheck修复数据库的步骤如下: 1. 在不停止MySQL服务的情况下,运行mysqlcheck进行检查和修复: ```...
问题描述:最近查看mysql数据库服务器日志,老发现有表损坏的错误日志,比如:120724 7:30:48 [ERROR] /data/soft/mysql/libexec/mysqld: Table ‘./blog/wp_links’ is marked as crashed and last (automatic?...