Docker环境创建Halo时,无法使用MySQL的问题和临时解决方案
以往创建Halo时,默认会使用自带的H2数据库,但官方提示H2数据库更多适用于测试环境,所以想着今天使用MySQL作为数据库创建Halo。
官方提供了现成的Docker Compose文件,用于部署使用MySQL数据库的Halo环境,但是我已经有共用的MySQL容器了,想着改一下yml文件就能直接用了。
以下是修改后的yml文件:
version: "3"
services:
halo:
image: registry.fit2cloud.com/halo/halo:2.16
restart: on-failure:3
networks:
halo_network:
volumes:
- ./halo2:/root/.halo2
ports:
- "8090:8090"
command:
- spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
- spring.r2dbc.username=root
# MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
- spring.r2dbc.password=**********
- spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://localhost:8090/
结果改完后怎么着都不生效,开始排查问题。
halo和mysql的容器在网络上的联通的。
mysql的用户名密码是正确的。
已经提前在mysql中创建了halo数据库,使用root用户,密码正确无误。
最后没有办法,只能进入halo容器,直接修改application.yaml文件的连接配置,以下是修改后的内容。
重启halo容器后,就能够正常使用mysql数据库了。