关于mysql数据文件损坏导致的mysql无法启动的问题

这篇具有很好参考价值的文章主要介绍了关于mysql数据文件损坏导致的mysql无法启动的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

环境

rocky linux 9 (跟centos几乎一模一样)

myqsl 8.0, 存储引擎使用innodb

问题描述

1. 服务器异常关机,重启启动后发现mysql无法连接,使用命令查看mysql状态:

systemctl status mysqld

发现mysql服务没启动,尝试启动mysql服务

systemctl start mysqld

上述命令执行后卡住不动,服务也没法正常启动

2. ctrl + c 强行取消命令执行,然后去查看一下mysql的启动日志,对于我目前的环境,mysql的启动日志位于:/var/log/mysql/  

vi /var/log/mysql/mysqld.log  

=====部分输出
InnoDB: End of page dump
InnoDB: Page may be an update undo log page
2021-02-10T14:22:14.800611Z 0 [ERROR] [MY-011906] [InnoDB] Database page corruption on disk or a failed file read of page [page id: space=4294967279, page number=611]. You may have to recover from a backup.

根据日志,很明显是数据库文件损坏(断电导致)

3. 调整配置,尝试使用恢复模式强行启动mysql

vi /etc/my.cnf.d/mysql-server.cnf

## 在[mysqld]标签下方添加一行配置
innodb_force_recovery=1

## 完整文件如下
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysql/mysqld.log
pid-file=/run/mysqld/mysqld.pid
innodb_force_recovery=1

再次尝试启动mysql,执行 systemctl start mysqld.。执行此命令后,可能还会卡住,此时要有点耐心,多等一会(至多五分钟)。如果执行命令过程中提示超时,也建议继续等待(此时mysql已经在后台尝试启动了)。提示超时后,可以使用systemctl status mysqld命令不停的查看启动状态。超过5分钟还没有启动成功,就不建议再等待了。

如果启动不了,将上述配置文件中的innodb_force_recovery的值修改为2再重试上述步骤,还不行的话就改为3、4、5、6,每次+1,直到启动成功。需要注意的是,此值大于等于4的时候,强制启动数据库有丢失部分数据的风险。

4. 数据库启动成功后,处于一个只读模式,此时只能读不能写。下一步的操作思路可以总结为:

        1. 登录数据库,使用命令执行表检查,查出损坏的表

        2. 导出损坏的表

        3. 删除损坏的表

        4. 重建损坏的表

上述步骤操作起来有点复杂,我这边用的是一种简单粗暴的方式,就是备份所有的表,另起一台数据库整个重建。文章来源地址https://www.toymoban.com/news/detail-702445.html

## 导出全部的表
mysqldump -uroot -p123456 --all-databases  > all_data_backup.sql

## 在新的数据库上边导入全部的表
mysql -uroot -p123456 -e "source all_data_backup.sql"

到了这里,关于关于mysql数据文件损坏导致的mysql无法启动的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker系列--解决hyper-v导致docker无法启动问题

    一、问题 windows docker desktop 启动报错异常,导致docker无法启动成功   我们看到问题出在hyper-v的问题上,搜索解决方法,官网常见问题如下 Overview | Docker Documentation 二、解决 Hyper-V 已安装并正常工作 在BIOS中启用虚拟化 Windows启动时启用了虚拟机监控程序 在开始菜单中,键入“

    2024年02月14日
    浏览(33)
  • Windows系统缺失mqrt.dll文件导致程序无法启动解决办法

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个mqrt.dll文件(挑选合适的

    2024年02月03日
    浏览(48)
  • 【用友】关于近日微软吊销证书导致用友/金蝶软件无法使用问题及解决办法

    问题现象: 2023年8月23日,用友/金蝶用户大批量出现无法正常使用的情况,用友T3/T6服务无法启动,有的是在使用中频繁报错,如下图: 金蝶部分版本提示如下:  经过开发排查,发现是微软吊销了win10和win11上的verisign证书,导致程序证书签名失效无法正常使用。   受影响的

    2024年02月01日
    浏览(41)
  • 记一次线上mysql出错:由于docker自动拉取最新mysql镜像导致mysql容器无法启动

    我随便写写,你们随便看看 环境背景:在docker中部署mysql镜像,通过portainer管理docker容器 简单说下过程:docker里mysql的时区没有设置,导致相差8小时,通过增加TZ=Asiz/Shanghai环境变量,然后重启容器来生效。结果重启的时候始终无法启动起来,后来发现是自动升级了mysql镜像版

    2024年02月07日
    浏览(40)
  • ArcGIS Serve Windows下用户密码变更导致Server服务无法启动问题

    因未知原因Windows下的Server安装账户密码变更,但是又忘记了密码,导致,Server服务启动失败,错误1069: 在账户管理界面,重置对应的arcgis账户的密码,然后服务面板重新登录。 但是在此问题环境中,账户管理中找不到之前的arcgis账户了,底层环境还是有点问题。试用配置工

    2024年02月11日
    浏览(34)
  • 关于可能由 VSCode 自动更新导致的 Jupyter 无法检测到内核的问题的解决

    环境 使用 Anaconda 中安装的 Jupyter Notebook 在 VSCode 中安装 Jupyter 相关插件以在 VSCode 中使用,如下: 问题描述 之前可以选择内核(可能要先 “Python: 选择解释器”,也可能不用),并且是自己检测到 conda 环境中的 Python。 但是后来会突然找不到内核,点击选择内核,会在空白

    2024年04月09日
    浏览(47)
  • 【Windows驱动篇】解决Windows驱动更新导致AMD Software软件无法正常启动问题

    【操作可能有风险,请提前做好数据备份,设置系统还原点等,防止系统出现问题!!!】 【操作可能有风险,请提前做好数据备份,设置系统还原点等,防止系统出现问题!!!】 【操作可能有风险,请提前做好数据备份,设置系统还原点等,防止系统出现问题!!!】

    2024年02月08日
    浏览(52)
  • Windows提示缺失d3drm.dll文件导致游戏或软件无法启动解决办法

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个d3drm.dll文件(挑选合适的

    2024年02月03日
    浏览(36)
  • 虚拟机挂起/重启后导致K8s网络不通或服务启动后主节点无法访问问题

    3台linux服务器搭建的一个 kubeadm-k8s 的集群环境,(1 Master 2 Worker),  当断电或者虚拟机挂起恢复后出现 service 访问不了,pod之间ping不通或者集群搭建失败问题,但是K8s集群还是正常可以创建 deployment 以及调度 pod 到各个 node 上, 并且 node都处于 ready 的状态。 找到其中的 kube

    2024年02月08日
    浏览(46)
  • wiadefui.dll文件丢失导致程序无法运行问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个wiadefui.dll文件(挑选合适

    2024年02月04日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包