在线升级2.1.8后发现的问题

在应用商店安装的mysql8和halo
安装mysql时名称一栏取名为mysql8
安装halo时数据库服务选择的也是mysql8
安装完成后全部正常运行
在线升级2.1.8后halo无法连接数据库
已安装应用里面无法修改halo的数据库连接
容器管理里面编辑halo的容器
在命令标签页将mysql8改为mysql容器ip
原来:

–spring.r2dbc.url=r2dbc:pool:mysql://mysql8:3306/halo_n54epr --spring.r2dbc.username=halo_sAW4mC --spring.r2dbc.password=halo_xybREf --spring.sql.init.platform=mysql --halo.external-url=http://example.com

修改:

–spring.r2dbc.url=r2dbc:pool:mysql://172.18.0.6:3306/halo_n54epr --spring.r2dbc.username=halo_sAW4mC --spring.r2dbc.password=halo_xybREf --spring.sql.init.platform=mysql --halo.external-url=http://example.com

确认重建后halo可以正常连接数据库
早期的1panle也发现过这个问题
而且每次更新后都会恢复安装时的连接方式
必须手动修改为容器ip

你改过 docker 的网络设置吗

一动没动过
就只是在线升级了1panel

升级 1panel 只是换一个二进制 不会修改容器的设置
你在 halo 的容器中 ping 一下 mysql8

ping不到
但是我另外装的mysql5可以ping到
问题出在mysql8容器上?

应该是容器网络的原因 你看一下 mysql8 这个容器用的什么 servicename 在 compose 文件中看一下

com.docker.compose.project=mysql8

services:
mysql8:

折腾了一晚
想了各种办法
都没能解决
今天看到mysql8提供了8.4.9的更新
死马当活马医就在线更新了
理论上mysql8是恢复正常了
因为nocobase可以通过DB_HOST=mysql8正常连接数据库了
两个typecho也可以通过TYPECHO_DB_HOST=mysql8正常连接数据库了
但是halo挂了

mysql://mysql8:3306
mysql://172.18.0.7:3306
mysql://localhost:3308
mysql://127.0.0.1:3308
mysql://主机ip:3308

以上都无法连接数据库
进入halo容器终端ping数据库mysql8是通的
用navicat远程连接mysql8也是正常的