docker-compose部署nacos配置外部MySQL数据源报java.lang.IllegalStateException: No DataSource set

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

使用docker-compose部署单机版nacos,并配置外部MySQL数据库(同样是docker-compose部署的MySQL),服务启动时提示java.lang.IllegalStateException: No DataSource set

docker-compose.yaml文件

version: '3.3'
services:
  nacos:
    image: nacos/nacos-server:v2.2.3
    container_name: nacos
    privileged: true
    restart: always
    volumes:
      - /etc/localtime:/etc/localtime
      - ./peer-finder:/home/nacos/plugins/peer-finder
      - ./data:/home/nacos/data
      - ./logs:/home/nacos/logs
    ports:
      - 18848:8848
    environment:
      - MODE=standalone
      - PREFER_HOST_MODE=hostname
      - NACOS_AUTH_ENABLE=true
      - NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789
      - NACOS_AUTH_IDENTITY_KEY=admin
      - NACOS_AUTH_IDENTITY_VALUE=admin
      - NACOS_SERVER_PORT=8848
      - NACOS_APPLICATION_PORT=8848
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_SERVICE_HOST=127.0.0.1
      - MYSQL_SERVICE_PORT=3306
      - MYSQL_SERVICE_DB_NAME=nacos
      - MYSQL_SERVICE_USER=root
      - MYSQL_SERVICE_PASSWORD={mysql_pwd}
      - MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false 
      

排查思路

1. 检查数据库的用户名、密码等信息是否正常,可以通过第三方客户端验证一下

2. 检查网络,是否存在访问限制

本例中,本地可以通过客户端连上数据库,故不存在数据库信息错误的问题。之后让nacos和mysql共用一个docker network,nacos可以正常启动

修改后的docker-compose.yaml文件

version: '3.3'
services:
  nacos:
    image: nacos/nacos-server:v2.2.3
    container_name: nacos
    privileged: true
    restart: always
    volumes:
      - /etc/localtime:/etc/localtime
      - ./peer-finder:/home/nacos/plugins/peer-finder
      - ./data:/home/nacos/data
      - ./logs:/home/nacos/logs
    ports:
      - 18848:8848
    networks:
      - mysql_default
    environment:
      - MODE=standalone
      - PREFER_HOST_MODE=hostname
      - NACOS_AUTH_ENABLE=true
      - NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789
      - NACOS_AUTH_IDENTITY_KEY=admin
      - NACOS_AUTH_IDENTITY_VALUE=admin
      - NACOS_SERVER_PORT=8848
      - NACOS_APPLICATION_PORT=8848
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_SERVICE_HOST=mysql
      - MYSQL_SERVICE_PORT=3306
      - MYSQL_SERVICE_DB_NAME=nacos
      - MYSQL_SERVICE_USER=root
      - MYSQL_SERVICE_PASSWORD={mysql_pwd}
      - MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false 
networks:
  mysql_default:
    external: true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值