问题排查记录:服务器 IPv4 转发禁用问题导致 Docker MySQL 无法连接

文章描述了在服务器重启后遇到的登录问题,包括VueAxios登录超时、Druid创建连接的SQLException、MySQL连接超时及服务器IPv4转发被禁用等故障。通过日志分析、数据库连接检查和系统配置修改,最终解决了IPv4转发问题,恢复了服务器的正常运行。
摘要由CSDN通过智能技术生成

  问题:重启服务器之后无法登录进入系统

一、Vue Axios 登录报 time out

  • 排错过程
    • 打开后端日志,排查请求流程的日志,发现日志没有报错,正常输出请求的参数
    • 修改到 Debug 日志级别,查看更详细的日志流程,发现没有 MyBatis 的 SQL 查询
    • 等了一会,抛出了 MySQL 连接失败的问题(可能是等连接 MySQL 超时之后才抛出,之前时间不够),出现下面的错误

在这里插入图片描述

二、Druid 报 create connection SQLException

  • 具体报错

    • create connection SQLException, url: jdbc:mysql://hybrid03:3306/car_analyse?characterEncoding=utf-8&useSSL=false, errorCode 0, state 08S01
    • com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
  • 第一反应是 MySQL 连接数超了

    • 进入数据库使用 show full processlist 一查,发现才用 21 个连接,就只有 Hive 在保持连接,根本没超(MySQL 默认 max_connections 为 151)
  • 第二就开始搜索别人怎么处理 Druid 报 create connection SQLException state 08S01

    • 发现很多人写的都是什么数据库连接地址 url 问题,添加个 useSSL=false 就行,然后一看我自己的参数都有,但是还是存在问题,随即放弃了搜索

三、排查 MySQL

  • 本地使用 DBeaver 连接远程数据库,发现连接超时,查看是否开启远程连接,排查已开启
  • 重启 MySQL、重启 Docker,均未解决,与客户商量一致删除 MySQL 容器重新运行(Docker MySQL 容器数据是挂载到宿主机的,数据不会丢失)
  • 重新装载 Docker MySQL 容器的时候,报了下面的一个警告

在这里插入图片描述

四、服务器 IPv4 转发被禁用问题

  • 具体警告
    • WARNING:IPv4 forwarding is disabled. Networking will not work.
  • 抱着试一试的心态去修改一下这个问题
    • 在宿主机的 /usr/lib/sysctl.d/00-system.conf 中添加 net.ipv4.ip_forward=1 的配置
    • 重启 Networ 和 Docker
      • systemctl restart network
      • systemctl restart docker
  • 问题解决,完结
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值