MySQL 数据表修复方法小结

 更新时间:2024年08月22日 10:20:59   作者:wu_zhiyuan  
本文主要介绍了MySQL 数据表修复方法小结,使用REPAIR TABLE命令修复损坏,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

本文主要讲check table和repair table指令;

1. 指令详解

在检查、修复表,除了用myisamchk指令,还可以用check tablerepair table指令。(指令不区分大小写)

  • 检查表是否有错误
    CHECK TABLE对MyISAMInnoDB表有作用。
    对于MyISAM表,关键字统计信息会被更新,CHECK TABLE也可以检查视图是否有错误,比如在视图定义中被引用的表已不存在。

名词解释

  • InnoDB,是MySQL的数据库引擎之一,现为MySQL的默认存储引擎,为MySQL AB发布binary的标准之一。
  • MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transaction)。不过,在这几年的发展下,MySQL也导入了InnoDB(另一种数据库引擎),以强化参照完整性与并发违规处理机制,后来就逐渐取代MyISAM。

说明:一些只对myisam表有作用(对innodb和视图无效)的选项介绍:

  • QUICK:不扫描行,不检查错误的链接。
  • FAST:只检查没有被正确关闭的表。
  • CHANGED:只检查自上次检查后被更改的表,和没有被正确关闭的表。
  • MEDIUM:扫描行,以验证被删除的链接是有效的。也可以计算各行的关键字校验和,并使用计算出的校验和验证这一点。
  • EXTENDED:对每行的所有关键字进行一个全面的关键字查找。这可以确保表是100%一致的,但是花的时间较长,所以很少使用。

修复有错误的表

REPAIR TABLE 用于修复被破坏的表。
默认情况下,REPAIR TABLE与myisamchk --recover tbl_name具有相同的效。
REPAIR TABLE对MyISAM和ARCHIVE表起作用

语法如下:
REPAIR [LOCAL | NO_WRITE_TO_BINLOG] TABLE    tbl_name [, tbl_name] ... [QUICK] [EXTENDED] [USE_FRM]

quick:repair只修复索引,等价于“myisamchk --recover --quick tablename”
extended:MySQL会一行一行地创建索引行,等价于”myisamchk --safe-recover tablename“
use_frm:如果.MYI索引文件缺失或标题被破坏,则使用此选项,用来自.frm文件重新创建.MYI文件。这种修复不能使用myisamchk来完成;在repair常规无法完成时,才会使用这个选项,如果表被压缩不能使用。

no_write_to_binlog:repair默认是写到二进制文件的,如果有主从模式的话,repair也会在从库执行;使用此选项将会禁止写入到二进制文件中。

2. 操作方法:

命令提示符(cmd指令)操作方法

输入cmd进入命令提示符

在这里插入图片描述

登录MySQL
输入指令msyql -u用户名 -p密码

在这里插入图片描述

注意:指令必须遵循上图格式,空格不能少也不能多;

选择数据库
MySQL中可以创建多个数据库,先选择再操作;

在这里插入图片描述

注意:分号(;)不能省略。
注意:如果你记住了库名,不需要显示所有库的步骤。

检查表或者修复表
自此可以输入check table指令检查表,也可以输入repair table修复表。下图为检查表。

在这里插入图片描述

mysql> check table t1 medium;
等价于
# myisamchk --medium-check tablename

快速检查没有被正确关闭的表

 mysql> check table 表名 quick fast;

注意:操作到步骤1.4就可以了。

SQLyog 操作方法(推荐)

SQLyog 是图像界面操作更直观,更简单。操作逻辑和指令是一样的,没有区别;
下图,我用repair table指令做例子,所有的指令操作都是如此;

  • 打开SQLyog
  • 输入指令
  • 执行指令

在这里插入图片描述

操作成功如下图:

在这里插入图片描述

注意:数据表越大操作越慢

到此这篇关于MySQL 数据表修复方法小结的文章就介绍到这了,更多相关MySQL 数据表修复内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SQL 中 HAVING 常见的使用方法

    SQL 中 HAVING 常见的使用方法

    这篇文章主要介绍了SQL中HAVING常见的使用方法,文章通过围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • MySql在Mac上的安装与配置详解

    MySql在Mac上的安装与配置详解

    这篇文章主要介绍了MySql在Mac上的安装配置,需要的朋友可以参考下
    2017-05-05
  • MySQL常用的系统函数一览

    MySQL常用的系统函数一览

    这篇文章主要介绍了MySQL常用的系统函数使用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • MySQL中的系统库(sys系统库、information_schema)调优方法

    MySQL中的系统库(sys系统库、information_schema)调优方法

    MySQL性能调优涉及数据库设计、查询优化、配置及硬件调整,MySQL性能调优是一个复杂且多维度的过程,下面从数据库设计、查询优化、配置参数调整、硬件优化几个方面为你介绍相关的调优方法,感兴趣的朋友跟随小编一起看看吧
    2025-08-08
  • Mysql批量修改表名实现去掉表前缀

    Mysql批量修改表名实现去掉表前缀

    文章介绍了在MySQL 5.7+中批量去除表名前缀"sw_"的方法,包括验证表名、版本检查和分步执行RENAME TABLE命令,建议先备份数据,通过查询生成重命名语句,逐个执行以避免操作中断,同时需注意应用代码对表名的依赖性
    2025-09-09
  • Mysql systemctl start mysqld报错的问题解决

    Mysql systemctl start mysqld报错的问题解决

    最近运行Mysql发现报错,本文就来介绍一下Mysql systemctl start mysqld报错的问题解决,需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06
  • MySQL字符串拼接与分组拼接字符串实例代码

    MySQL字符串拼接与分组拼接字符串实例代码

    做SQL查询时会经常需要,把查询的结果拼接成一个字符串,下面这篇文章主要给大家介绍了关于MySQL字符串拼接与分组拼接字符串的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • MySQL GTID全面总结

    MySQL GTID全面总结

    这篇文章主要介绍了MySQL GTID的相关资料,帮助大家更好的理解和学习使用MySQL数据库,感兴趣的朋友可以了解下
    2021-03-03
  • ubuntu kylin 14.10下多个mysql 5.7.14安装教程

    ubuntu kylin 14.10下多个mysql 5.7.14安装教程

    这篇文章主要为大家分享了ubuntu kylin 14.10下多个mysql 5.7.14安装教程,感兴趣的朋友可以参考一下
    2016-08-08
  • Docker部署Mysql数据库的详细步骤

    Docker部署Mysql数据库的详细步骤

    这篇文章主要介绍了如何使用Docker拉取和部署MySQL镜像,配置镜像源,修改容器时区,导入数据,并通过可视化工具连接和管理数据库,需要的朋友可以参考下
    2025-03-03

最新评论