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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

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

排错过程

一、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 转发被禁用问题

  • 具体警告
    • WARNINGIPv4 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
  • 问题解决完结
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6