Innodb表空间损坏

运行了个较大的微服务项目,直接给我MySQL干坏了。。。

nacos一直连不上最后发现是Innodb表空间损坏

查看容器日志获取更多详细信息,特别是崩溃原因。

运行以下命令查看MySQL容器的详细日志:docker logs mysql --tail 50

[root@localhost ~]# docker logs mysql --tail 50

InnoDB: immediately after the mysqld startup, there may be

InnoDB: corruption in the InnoDB tablespace. Please refer to

InnoDB: http://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html

解决方法

  1. 强制恢复 InnoDB 表空间

    MySQL 提供了强制恢复(InnoDB Recovery)的机制来尝试修复数据文件。可以通过设置 innodb_force_recovery 参数来控制恢复级别。

    • 修改 MySQL 的 my.cnf 配置文件,添加如下配置:

      [mysqld] innodb_force_recovery=1

  • 不同的恢复级别从 1 到 6,逐步提高恢复力度。如果 1 无效,可以尝试逐步增加到 6。每次修改完配置文件后,需要重启 MySQL 容器。

  • 如果使用 Docker,可以通过重新运行容器并指定自定义配置文件

  1. 备份数据并重新部署 MySQL

    如果恢复无效,可以考虑备份数据目录(如果数据对你很重要)然后重新部署 MySQL 容器。确保备份数据不会再造成后续问题。

  2. # 停止并删除现有容器 docker stop mysql docker rm mysql

    docker run -d \

    --name mysql \

    -p 3306:3306 \

    -e TZ=Asia/Shanghai \

    -e MYSQL_ROOT_PASSWORD=123 \

    mysql

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值