找回密码
 立即注册
搜索
查看: 257|回复: 7

[mysql] InnoDB: File (unknown): 'read' returned OS error 0. Cannot continue operation

[复制链接]
发表于 2024-10-16 09:48 | 显示全部楼层 |阅读模式
2024.10.15:
事件起因:使用phpStuday启动mysql时发现启动失败,启动了几次都这样。于是进入services.msc启动mysql,结果还是失败,报错(没仔细看),难道是我安装的斗地主游戏造成的吗? 于是启动mysql5.5却启动正常。以为是默认的mysql5.7配置错误,但仔细想一下,这么长时间都没有碰过配置文件了,肯定不会是配置文件错误。于是,查看错误日志:
 
2024-10-15T07:43:55.841618Z 0 [Note] mysql5.7 (mysqld 5.7.36-log) starting as process 3940 ...
024-10-15T07:43:59.743618Z 0 [Warning] InnoDB: Retry attempts for reading partial data failed.
2024-10-15T07:43:59.743618Z 0 [ERROR] InnoDB: Tried to read 1048576 bytes at offset 1048576, but was only able to read 0
2024-10-15T07:43:59.743618Z 0 [ERROR] InnoDB: File (unknown): 'read' returned OS error 0. Cannot continue operation
2024-10-15T07:43:59.743618Z 0 [ERROR] InnoDB: Cannot continue operation.

当我看到 'read' returned OS error 0的时候,一股不好的念头冲了上来:难道我的原配硬盘出问题了(笔记本asus F556U ),我觉得小日子的硬盘应该不会那么脆弱吧。

赶紧找日志:计算机管理-系统工具-事件查看器-Windows日志-系统:(还真找到了)


看到这个,瞬间感觉我的硬盘快完了。应该是mysql5.7的系统文件正好在这个坏扇区上,导致mysql5.7启动不起来。真是烦:以前用mysql5.5多年了,都没有出现过任何问题,才升级mysql5.7两年左右就出问题,到底是我的硬盘寿命到头了还是这个版本的数据库频率读书数据造成的呢?唉,先处理好mysql5.7吧,起码本地的网站能够跑起来。突然想起来,最近一直在用discuzx建站,会不会是没有启用redis缓存导致每次展示页面都是读硬盘呢?赶紧改下,启用redis,不能一直读硬盘。
 

拯救过程:换另外一个系统,进命令行模式:执行命令:
checkdisk /f /r d:     

注:在另外一个系统中,硬盘的盘符会发生变化,要根据你进入的系统为准。

接下来就是漫长的等待中:


果真是mysql的系统文件出错了,唉,居然还连累一个图片文件。

执行完毕后,重启电脑进行原系统,启动phpStuday,此时,mysql正常启动,再打开上图中的图片,发现图片只有一半,算了。我再补上去吧。

到此为止,修复完毕。问题暂时解决。但问题的根源并没有解决:是笔记本电池老化导致电力输出不稳定(在win7系统下,电池老是提示:请更换电池)?还是网站用的是文件缓存,频繁读硬盘造成的呢?  

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
 楼主| 发表于 2024-10-16 18:10 | 显示全部楼层
今天在备份mysql应用程序时,发现ibtmp1文件无法压缩导致备份失败,用rar、7z、zip都会报错中断。在网上搜索了一下,发现这个文件是innodb的临时表,真是扯蛋,以前用mysql5.5的MyISAM时非常舒服。为了跟上潮流才用了mysql5.7版本,没想到,会这样,而且硬盘还搞出了坏扇区,我都怀疑是不是你mysql5.7搞的鬼。

报怨了一番,还得解决问题呀,在网上搜索到,在SQL里执行:shutdown后ibtmp1就会消失,试了一下,此文件成功消失 了。赶紧备份了一下应用程序和主要数据库数据,防止出现意外。

 
 楼主| 发表于 2024-10-17 22:48 | 显示全部楼层
后续:发现chkdsk修复物理坏块作用不大,最多可以将文件恢复过去,这一点挺好。修复物理坏块,还是要用专业的软件,目前用DiskGenius修复后,勉强在用。

目前已经不用电池、禁止休眠、合盖操作。尽量少读写硬盘。
 楼主| 发表于 2024-10-26 15:05 | 显示全部楼层
发现修复的文件都废了,只有一半内容,另一半都是随机字母。
 楼主| 发表于 2024-11-11 17:24 | 显示全部楼层
TMD,现在的硬盘这么不经用吗?这才几天了,又出现文件无法访问了。而且还出现一个目录无法访问,前几天还可以访问这个目录的几个文件呢,上次没看完,想着看一下。现在看不了了。





原来这货扫描完就修复了,但仅仅是对坏块进行修复。严重的它没修复。难道还要等下次再修复?

PS:原来这货是只检测,不修复。艹。我以为他修复了呢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
 楼主| 发表于 2024-11-11 22:58 | 显示全部楼层
回复1楼:应该不是笔记本电池的问题,虽然电池微微鼓包,不影响使用。但此时已经将电池取下来了。应该是在11月初或者10月月底。

方案:使用mysql5.5_service模式启动,先用一段时间看看硬盘会如何。

之前的mysql5.7是完全和phpStudy2016以非服务模式启动,所有操作都是通过点击phpStudy2016面板操作。导致mysql5.7出现ibtmp1,关电脑难道会通知mysql5.5的服务吗? 先用mysql5.5一段时间,看看是不是以非服务方式使用mysql5.7会对机械硬盘造成影响。
 楼主| 发表于 2024-11-12 15:30 | 显示全部楼层


扯蛋,昨天刚刚修复完,今天又来坏块。郁闷了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
 楼主| 发表于 2024-11-13 07:42 | 显示全部楼层
鸟毛的toshiba硬盘,移动1T  toshiba 硬盘难道也坏了??? 难得用一次的移动硬盘也出问题了。这是什么鬼。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|学习笔记

GMT+8, 2025-5-22 08:10 , Processed in 0.040038 second(s), 12 queries , APCu On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表