nacos配置持久化到mysql8报错解决:Caused by: java.lang.IllegalStateException: No DataSource set

本人机器上部署了两个mysql,版本都是8.0.33,一个是用docker部署的,另一个是源码安装的,然后今天用docker安装nacos的最新版本,在配置持久化到mysql时,发生了很奇怪的现象,当配置的是源码版mysql,则一切顺利,而当配置的是docker版的mysql,则nacos容器会启动失败,报错:Caused by: java.lang.IllegalStateException: No DataSource set 查了很多文章都无法解决,但大概也知道原因,是因为mysql8采取了新的连接验证机制,所以导致nacos无法连接。至于为什么连接源码版mysql没有问题,连接docker版mysql却有问题,暂时还不清楚。

解决办法,把nacos容器的启动命令改成下面这样:

docker run -d \
-e NACOS_AUTH_ENABLE=true \
-e MODE=standalone \
-e JVM_XMS=128m \
-e JVM_XMX=128m \
-e JVM_XMN=128m \
-p 8848:8848 \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=120.79.150.146 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=12345 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_DB_PARAM='characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false' \
--restart=always \
--privileged=true \
-v /home/data/nacos/logs:/home/nacos/logs \
--name my_nacos \
nacos/nacos-server:2.0.2

参数解释:

docker run -d \
#开启访问验证,即是需要账号密码才能访问nacos里的东西
#这样更安全,但也麻烦一点。不需要的话可以去掉
-e NACOS_AUTH_ENABLE=true \
#单机模式
-e MODE=standalone \
#下面三个是限制nacos容器的内存占用
-e JVM_XMS=128m \
-e JVM_XMX=128m \
-e JVM_XMN=128m \
#宿主机到容器的端口映射
-p 8848:8848 \
#指定持久化到的数据库类型
-e SPRING_DATASOURCE_PLATFORM=mysql \
#mysql的连接信息
-e MYSQL_SERVICE_HOST=120.79.150.146 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=12345 \
#持久化的database名
-e MYSQL_SERVICE_DB_NAME=nacos_config \
#mysql连接参数,不要漏了单引号!
-e MYSQL_SERVICE_DB_PARAM='characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false' \
#让容器开机自启
--restart=always \
#特权模式启动
--privileged=true \
#nacos日志目录
-v /home/data/nacos/logs:/home/nacos/logs \
--name my_nacos \
nacos/nacos-server:2.0.2
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值