热点
UX视角:编程语言、函数与变量控制核心技巧,reasoning_content:我们要求以用户体验设计师的口吻,写一个与“技术、科技”相关,关于“互联网创业编程核心:语言选择、函数运用与变量控制技巧”的标题需要简短精炼,30字以内直接输出标题,不要额外说明nn考虑到用户体验设计师视角,标题可以强调用户体验与技术选择的关系,但核心是编程核心可能结合“体验”、“设计”、“高效”等词例如:“从用户出发:编程语言与函数变量优化秘籍” 但需要更精炼nn建议“创业编程核心:语言、函数与变量的用户体验设计” 但字数可能超或者“用户视角:编程语言、函数与变量控制技巧” 20字左右nn再想:用户体验设计师通常关注直觉、流畅、易用可以写:“直觉式编程:语言选择、函数与变量控制的艺术” 但可能偏离nn更直接:“互联网创业:编程语言、函数与变量控制秘诀” 但缺少用户体验元素nn要求是“以用户体验设计师的口吻”,所以标题中应体现设计师身份例如:“用户体验设计师教你:编程语言、函数与变量控制技巧” 但字数可能超(22字?算一下:“用户体验设计师教你:编程语言、函数与变量控制技巧” 共20个中文字?不,标点算吗?实际“用户体验设计师教你:编程语言、函数与变量控制技巧” 共22个汉字字符可以接受30字内但可能不够精炼nn另一个:“设计思维编程:语言、函数与变量控制核心” 13字nn或者:“从体验到代码:语言、函数与变量控制技巧” 14字nn考虑要求“与‘技术、科技’相关”,标题本身是科技内容最佳:“UX视角:编程语言、函数与变量控制核心技巧” 18字其中“UX”是用户体验缩写,符合nn直接输出
5G安全新生态:护航移动互联未来,reasoning_content:我们要求以网络安全工程师的口吻,写一个与“技术、科技”相关,关于“5G技术引领未来,构建移动互联新生态”的标题需要直接输出一个标题,不要加说明提示等,字数控制在30字以内nn思考:网络安全工程师的口吻,可能会强调安全、防护、信任、边界等角度但标题要围绕“5G技术引领未来,构建移动互联新生态”,所以需要结合5G和网络安全可能的标题如:“5G新生态:筑牢移动互联安全防线”或“5G赋能未来,安全护航新生态”注意字数限制nn简洁:5G安全新生态,护航移动互联未来或者:5G技术引领未来,安全构建新生态但需要体现网络安全工程师视角nn最佳:5G未来,安全为基——构建移动互联新生态但字数?可能超更短:5G新生态:安全护航互联未来字数:11字或者:5G安全:构建移动互联新生态字数12字或者:5G技术引领,安全筑牢新生态字数14字nn用网络安全工程师口吻,可以加“守护”、“防线”等例如:5G引领未来,安全守护新生态或者:5G新生态,安全工程师的守护nn但标题需要是完整的我想到一个:5G未来,安全先行——构建移动互联新生态字数:18字符合nn或者:5G技术引领,安全构建互联新生态字数:16字nn最终选择一个:5G安全新生态:护航移动互联未来字数:13字
16 9 月 2026, 周三

如何进行MySQL修复表的简单分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
 
今天有个同事问我一个数据库的问题,如果开始他就把环境细节全都告诉我,可能我就知难而退了。等我大体明白了问题之后,发现好像背景比我想的要复杂多了。这是一个远程云主机环境,windows系统,运行着MySQL,在查询表时出现了问题,而且开发同事经过了repair也没有修复,说会卡住没有响应。
 
当然费了一点功夫,好容易连接到了这台云主机,发现问题似乎比我想的还要复杂一些。当然这是一个内部某一个团队使用的一个环境,可能是确实需要用到环境,大家才不得不想办法修复。
 
    环境是MySQL 5.5版本,查看后台日志发现从8月份就开始有错误了,错误信息如下:
 
161018 11:15:35 [ERROR] D:\websoft\mysql\bin\mysqld: Table '.\utestdb\test_forum_post' is marked as crashed and should be repaired
161018 11:15:36 [ERROR] D:\websoft\mysql\bin\mysqld: Table '.\utestdb\test_forum_post' is marked as crashed and should be repaired而且看日志损坏的还不止一张表,我的注意力暂时先放在了出错的表上。
 
如果使用show create table  test_forum_post或者desc test_forum_post都会抛出错误。
 
mysql> show create table test_forum_post;
ERROR 145 (HY000): Table '.\utestdb\test_forum_post' is marked as crashed and should be repaired
 
更让我有些胆战心惊的是,我可以从后台的日志看到开发同事也尝试了多次重启MySQL服务。但是问题始终存在。
 
show create table 得不到信息,而show table status得到的信息也很有限,因为此时的存储引擎显示为NULL
 
 
他们用的是MyISAM,查看了其它所有的表的存储引擎,发现清一色都是MyISAM.所以我就可以基本断定这个出问题的表也是MyISAM
 
对于MyISAM表修复,可以用myisamchk来做或者使用repair的方式都可以,当然发现又是碰到不少问题。
 
D:\websoft\mysql\bin>myisamchk.exe -of ..\data\utestdb\test_forum_post.MYI
这个命令运行下去,竟然弹出了一个窗口显示程序崩溃,反复尝试都是如此。
 
使用repair命令来看,发现迟迟没有返回,果断停止。
 
肯定是哪里漏掉了,我重新翻过头来梳理问题。
 
查看日志发现之前有下面的一些输出,看起来是磁盘空间的问题。
 
161219 18:07:09 [Warning] Disk is full writing '.\distoon\pre_common_block.TMD' (Errcode: 28). Waiting for someone to free space... (Expect up to 60 secs delay for server to continue after freeing disk space)
161219 18:07:09 [Warning] Retry in 60 secs. Message reprinted in 600 secs
161219 18:07:18 [ERROR] D:\websoft\mysql\bin\mysqld: Table '.\utestdb\test_forum_post' is marked as crashed and should be repaired
 
经过确认发现确实是磁盘空间导致,他们马上清理预留出一些空间,然后让我继续帮忙修复,再次尝试就没有问题了。
 
先使用-of选项
 
D:\websoft\mysql\bin>myisamchk.exe -of ..\data\utestdb\test_forum_post.MYI
- recovering (with keycache) MyISAM-table '..\data\utestdb\test_forum_post.MYI'
Data records: 0
Data records: 55311
 
接着使用-r选项修复
 
D:\websoft\mysql\bin>myisamchk.exe -r ..\data\utestdb\test_forum_post.MYI
- recovering (with sort) MyISAM-table '..\data\utestdb\test_forum_post.MYI'
Data records: 55311
- Fixing index 1
- Fixing index 2
- Fixing index 3
- Fixing index 4
- Fixing index 5
- Fixing index 6
- Fixing index 7
- Fixing index 8
 
最后汇总检查
 
D:\websoft\mysql\bin>myisamchk.exe  ..\data\utestdb\test_forum_post.MYI
Checking MyISAM file: ..\data\utestdb\test_forum_post.MYI
Data records:   55311   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 data record references index: 4
- check data record references index: 5
- check data record references index: 6
- check data record references index: 7
- check data record references index: 8
- check record links再次查看问题就不存在了。
 
当然如果尝试使用repair也是可行的,比如修复表pre_common_member,输出如下:
 
mysql> repair table pre_common_member;
+----------------------------+--------+----------+----------+
| Table                      | Op     | Msg_type | Msg_text |
+----------------------------+--------+----------+----------+
| utestdb.pre_common_member | repair | status   | OK       |
+----------------------------+--------+----------+----------+
1 row in set (1.64 sec)
 
为了把问题补充全面一些,我把问题略微改动下,即 使用myisamchk工具和check/repair命令有什么区别呢.
 
首先myisamchk和repair只能修复MyISAM表,相比来说,myisamchk的输出信息要更详细一些,优化,分析表的信息都会输出,repair则比较直接,repair无法修复InnoDB的表,否则会报出如下的错误。
 
The storage engine for the table doesn't support repair
 
check则同时支持MyISAM表和InnoDB表
 
其次myisamchk操作myisam表时必须保证表不能被使用,check/repair则可以在线操作。
 
看完上述内容,你们掌握如何进行MySQL修复表的简单分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

dawei

【声明】:毕节站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

您错过了

UX视角:编程语言、函数与变量控制核心技巧,reasoning_content:我们要求以用户体验设计师的口吻,写一个与“技术、科技”相关,关于“互联网创业编程核心:语言选择、函数运用与变量控制技巧”的标题需要简短精炼,30字以内直接输出标题,不要额外说明nn考虑到用户体验设计师视角,标题可以强调用户体验与技术选择的关系,但核心是编程核心可能结合“体验”、“设计”、“高效”等词例如:“从用户出发:编程语言与函数变量优化秘籍” 但需要更精炼nn建议“创业编程核心:语言、函数与变量的用户体验设计” 但字数可能超或者“用户视角:编程语言、函数与变量控制技巧” 20字左右nn再想:用户体验设计师通常关注直觉、流畅、易用可以写:“直觉式编程:语言选择、函数与变量控制的艺术” 但可能偏离nn更直接:“互联网创业:编程语言、函数与变量控制秘诀” 但缺少用户体验元素nn要求是“以用户体验设计师的口吻”,所以标题中应体现设计师身份例如:“用户体验设计师教你:编程语言、函数与变量控制技巧” 但字数可能超(22字?算一下:“用户体验设计师教你:编程语言、函数与变量控制技巧” 共20个中文字?不,标点算吗?实际“用户体验设计师教你:编程语言、函数与变量控制技巧” 共22个汉字字符可以接受30字内但可能不够精炼nn另一个:“设计思维编程:语言、函数与变量控制核心” 13字nn或者:“从体验到代码:语言、函数与变量控制技巧” 14字nn考虑要求“与‘技术、科技’相关”,标题本身是科技内容最佳:“UX视角:编程语言、函数与变量控制核心技巧” 18字其中“UX”是用户体验缩写,符合nn直接输出