-->
当前位置:首页 > DayDayUp > 正文内容

Linux硬重启后磁盘损坏导致MySQL无法启动问题修复

Luz1年前 (2022-11-08)DayDayUp4504

故障现象

服务重启后宝塔面板没法把mysql拉起来了,尝试命令行启动mysql报错

[root@instance-20221108-1616 ~]# service mysqld start
Starting MySQL. ERROR! The server quit without updating PID file (/www/server/data/instance-20221108-1616.pid).

image.png


故障处理

查看MySQL报错日志,报错找不到mysql-bin.index文件

2022-11-08T12:04:40.000499Z 0 [Warning] option 'max_allowed_packet': unsigned value 107374182400 adjusted to 1073741824
2022-11-08T12:04:40.000595Z 0 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled
2022-11-08T12:04:40.000612Z 0 [Note] /www/server/mysql/bin/mysqld (mysqld 5.7.34-log) starting as process 68663 ...
mysqld: File './mysql-bin.index' not found (Errcode: 5 - Input/output error)
2022-11-08T12:04:40.014762Z 0 [ERROR] Aborting

尝试创建文件也失败了

[root@instance-20221108-1616 data]# touch mysql-bin.index
touch: cannot touch 'mysql-bin.index': Input/output error

尝试给文件夹赋权,失败

[root@instance-20221108-1616 data]# chmod 777 -R /www
chmod: cannot access '/www/server/data/ibtmp1': Input/output error
chmod: cannot access '/www/server/data/mysql-bin.index': Input/output error

猜测磁盘损坏

卸载磁盘

[root@instance-20221108-1616 data]# umount /dev/sdb
umount: /www: target is busy.
[root@instance-20221108-1616 data]# umount /www
umount: /www: target is busy.
[root@instance-20221108-1616 data]# umount /dev/sdb -l


尝试恢复报错 cannot open /dev/sdb: Device or resource busy


reboot后重新执行(extX 的分区格式使用fsck修复,XFS分区格式使用 mkfs命令修复 mkfs.xfs -f /dev/sdb1

[root@instance-20221108-1616 ~]# fsck -t ext2 -y /dev/sdb
fsck from util-linux 2.32.1
e2fsck 1.45.6 (20-Mar-2020)
/dev/sdb contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Deleted inode 4727069 has zero dtime.  Fix? yes

Deleted inode 4727073 has zero dtime.  Fix? yes

Deleted inode 4727074 has zero dtime.  Fix? yes

Deleted inode 7184391 has zero dtime.  Fix? yes

Deleted inode 7184392 has zero dtime.  Fix? yes

Deleted inode 7184393 has zero dtime.  Fix? yes

Deleted inode 7184394 has zero dtime.  Fix? yes

Deleted inode 7184401 has zero dtime.  Fix? yes

Deleted inode 7184402 has zero dtime.  Fix? yes

Deleted inode 7184403 has zero dtime.  Fix? yes

Deleted inode 7184404 has zero dtime.  Fix? yes

Deleted inode 7184405 has zero dtime.  Fix? yes

Deleted inode 7184406 has zero dtime.  Fix? yes

Extended attribute block 18940418 has reference count 1025, should be 1024.  Fix? yes

Extended attribute block 20152834 has reference count 1018, should be 1014.  Fix? yes

Extended attribute block 20254344 has reference count 882, should be 876.  Fix? yes

Pass 2: Checking directory structure
Entry 'ibtmp1' in /server/data (4046849) has deleted/unused inode 4046850.  Clear? yes

Entry 'mysql-bin.index' in /server/data (4046849) has deleted/unused inode 4046878.  Clear? yes

Pass 3: Checking directory connectivity
Pass 3A: Optimizing directories
Pass 4: Checking reference counts
Unattached inode 4046879
Connect to /lost+found? yes

Inode 4046879 ref count is 2, should be 1.  Fix? yes

Unattached inode 4046880
Connect to /lost+found? yes

Inode 4046880 ref count is 2, should be 1.  Fix? yes

Pass 5: Checking group summary information
Block bitmap differences:  -(16811631--16811636) -(16811638--16812650) -(16812688--16812690) -(16812744--16812754) -(16812880--16813881) -(16813883--16814923) +16814925 -(16814950--16816127) -(18900624--18900630) -(18900728--18900734) -(18900965--18901086) -(18901088--18901094) -(18901159--18907135) -18907650 -(18907656--18913279) -18916738 -18916749 -(18916757--18916795) -(18916818--18916887) -(18916889--18917068) -(18917075--18917144) -(18917146--18917178) -(18917180--18917325) -(18917327--18917431) -(18917433--18919956) -(18919958--18919965) -18920002 -(18920032--18920033) -(18920078--18920379) +18921709 -18939400 -(28835492--28835839) -(28836354--28838548) -(28854739--28854746) -(28949148--28949152) -28976918 -28976920 -28976956 -(29000195--29000391) -(29000395--29000398) -(29000403--29000466) -(29002907--29003035) -(29003043--29003127) -(29003640--29003775) -(29003795--29004007) -(29004012--29004227) -(29004280--29004323)
Fix? yes

Free blocks count wrong for group #513 (1132, counted=5385).
Fix? yes

Free blocks count wrong for group #576 (0, counted=6120).
Fix? yes

Free blocks count wrong for group #577 (3258, counted=12365).
Fix? yes

Free blocks count wrong for group #879 (24717, counted=25065).
Fix? yes

Free blocks count wrong for group #880 (25304, counted=27507).
Fix? yes

Free blocks count wrong for group #883 (29383, counted=29388).
Fix? yes

Free blocks count wrong for group #884 (28891, counted=28894).
Fix? yes

Free blocks count wrong for group #885 (6450, counted=7538).
Fix? yes

Free blocks count wrong (34182084, counted=34205211).
Fix? yes

Inode bitmap differences:  -4046850 -4046878 +(4046879--4046880) -4727069 -(4727073--4727074) -(7184391--7184394) -(7184401--7184406)
Fix? yes

Free inodes count wrong for group #577 (7853, counted=7856).
Fix? yes

Directories count wrong for group #577 (7, counted=6).
Fix? yes

Free inodes count wrong for group #877 (8160, counted=8170).
Fix? yes

Free inodes count wrong (9705033, counted=9705046).
Fix? yes


/dev/sdb: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sdb: 125354/9830400 files (0.9% non-contiguous), 5116389/39321600 blocks

修复完成,mysqld启动成功

[root@instance-20221108-1616 ~]# service mysqld start
Starting MySQL. SUCCESS! 
[root@instance-20221108-1616 ~]# pidof mysqld
18335

image.png

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。