VPN网络环境下 本地客户端能连上mysql 本地启服务连不上mysql的原因

  • 背景
    公司mysql使用的是华为云RDS,由于要做一些测试验证,需要本地通过VPN直连华为RDS节点;找运维配置好网络后,本地 telnet 内网ip 3306 以及通过navicat客户端都能正常连接数据库;但是本地启动的服务就是连接不上。
  • 问题排查
  1. 先检查服务中配置的 ip 端口 库名 账号 密码等信息完全正确
  2. 检查网络、rds白名单都正常
  3. 同样的代码连接个人的mysql 也能正常连接
  • 最终解决
    在Springboot 启动参数中加 -Djava.net.preferIPv4Stack=true 就解决了
    VPN网络环境下 本地客户端能连上mysql 本地启服务连不上mysql的原因_第1张图片

  • 原因分析
    使用-Djava.net.preferIPv4Stack=true选项可以强制应用程序在IPv4协议栈上运行。这个选项的作用是告诉Java虚拟机(JVM)优先使用IPv4而不是IPv6。
    使用-Djava.net.preferIPv4Stack=true选项可以解决一些与IPv6相关的网络问题,因为在某些环境中,IPv6配置可能不正确或受限,从而导致无法正常建立连接。通过强制应用程序使用IPv4协议栈,可以绕过这些IPv6相关的问题。

当然,这只是导致程度无法连接的一种可能得原因

你可能感兴趣的:(mysql,数据库)