alpine linux中docker mysql踩坑记录

写在前头,本文只是记录这个坑,目前没有找到解决办法。
研究了一天了,也没有解决。

环境

我使用vmware安装了alpine linux,安装过程见:
《vmware安装alpine linux》
https://www.bilibili.com/video/BV1H3411H7W4/

然后我在alpine linux中安装了docker安装过程见:
《alpine linux中安装docker》
https://blog.csdn.net/lxyoucan/article/details/123884548

然后我又在docker中安装mysql 5.7安装过程见:
《RuoYi开发实战-搭建开发环境》
https://blog.csdn.net/lxyoucan/article/details/123764953

查了一下root是支持%的
在这里插入图片描述

现象

这样安装出来的mysql非常奇怪。使用mysql 命令行的客户端可以正常连接。但是使用jdbc连接就报错。

命令行mysql正常连接

在这里插入图片描述

jdbc方式连接失败

在这里插入图片描述
Java代码中的Jdbc连接也无法正常连接。

探索过程

这个让我非常的难以理解,我做了一系列的测试。基本把网上能试的方法都试过了。都无法解决。

以下方法我试过了,对我这问题无效。

  1. 注释bind-address="127.0.0.1" 或者修改成 bind-address=“0.0.0.0”
  2. 运行 java 并选择-Djava.net.preferIPv4Stack=true强制 java 使用IPv4而不是IPv6. 在 Linux 上,这也可以通过运行(或将其放入/etc/profile:
 export _JAVA_OPTIONS="-Djava.net.preferIPv4Stack=true"
  1. 内网端口穿透到外网测试依然是命令行mysql可以连接,jdbc无法连接。
  2. 关闭防火墙
  3. 连接字符串中加useSSL=true

奇怪的现象

  1. 我创建了三台alpine linux虚拟机,其中一台虚拟机(第1台)中的Mysql一切正常,另外两台相同的配置方法,就是无法Jdbc连接。
  2. 上面提到的第1台alpine虚拟机,3306端口的Mysql服务正常。但是在重新创建新的Mysql服务比如:3307就无法正常jdbc访问了。
  3. 把正常的3306端口停了,重新创建一个新的3306端口的mysql服务依然是不正常的。
  4. CentOS7中同样的方法在docker中安装mysql服务,一切正常。
  5. Ubuntu20.04中同样的方法在docker中安装的mysql服务,一切正常。
  6. macOS中docker安装mysql一切正常。

解决办法

暂时没有找到最终的原因,目前只能暂时放弃使用alpine Linux系统。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值