Docker中Nacos容器正常启动但网页访问不了,找不到MySQL依赖报错,Innodb日志表损坏

问题复现

今早打开虚拟机发现打不开了,根据链接解决了。可是docker开启nacos容器后发现容器正常启动,网页却访问不了。使用docker ps命令查看如下,发现所有容器都正常启动。
nacos无法正常启动
nacos无法访问

使用find / -name “start.out” 找到其详细日志文件的所在路径。
nacos日志文件
使用cat /data/soft/nacos/logs/start.out 命令查看详情信息,也可以加上过滤字段快速定位原因cat /data/soft/nacos/logs/start.out | grep "Error"“Falied”。可以看到是连接mysql出现了问题。
查找nacos日志错误信息
使用docker logs mysql 查看mysql报错信息,显示error.log日志文件权限不对,而且mysql的data文件存在无效问题。找到对应error.log文件查看,发现是Innodb日志表损坏了。想起来上次关机好像忘关虚拟机了同时项目也运行着,一关机第二天开机就出问题了,所以还是要合理关机,把虚拟机和项目都停掉再关。
mysql日志

mysql错误日志

解决办法

mysql容器启动不了,Innodb日志表损坏,考虑跳过恢复步骤,具体操作如下。
停用mysql

docker stop mysql

查找my.cnf路径

find / -name "my.cnf"

在my.cnf中的[mysqld]中添加:

innodb_force_recovery = 6
innodb_purge_threads = 1

在这里插入图片描述

启动mysql

docker start mysql

将所有数据库导出为sql

docker exec -it mysql mysqldump -uroot -pmysql --all-databases > /home/all.sql

停止mysql。然后把之前的跳过恢复的配置还原。
恢复配置
返回上一级目录把与conf同级的data文件夹删掉。注意备份。
删掉data文件夹
继续启动mysql,它会自动新生成一个data文件夹。将all.sql复制到mysql容器中。

docker cp /home/all.sql mysql:/home/all.sql

进入mysql容器。

docker exec -it mysql bash

输入账号密码进入mysql。

mysql -uroot -pmysql

然后执行之前的all.sql,重新再启动mysql,重新启动docker服务即可。

source /home/all.sql

执行all.sql

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值