spring cloud alibaba nacos (No Datasource Set)



a. 问题描述:No Datasource Set

b. 产生原因:
        docker-compose基于镜像mysql:8.0.28nacos/nacos-server:v2.0.4构建一个mysql单机模式nacos,在进行docker启动之后,nacos日志输出异常错误信息No Datasource Set,最后导致nacos应用自我销毁。我使用mysql命令行工具进行连接,,“欻”地一下就连上了,使用mysql的workbeanch也可以轻易连上,我百思不得其解,这是为什么呢?明明可以连接呀!为什么会显示No Datasource Set? 好久好久之后,我突然想到,nacos是java项目,使用的是数据库连接驱动包,会不会是驱动包的问题。我刚好有个客户端Dbeaver是使用数据库连接驱动包,我“咔”地打开一测试,显示Public Key Retrieval is not allowed,哦哦哦…… 我是服了,这个跟没设置数据源有关系吗?输出一些不明所以的异常信息有个什么鬼用?

c. 解决方法:
        增加mysql的连接url参数allowPublicKeyRetrieval=true即可!其余的参数偶尔也会因为稀奇古怪的错,可加可不加,出错了再说😁

注意:对于使用mysql作为持久化的nacos启动,mysql数据库中必须存在相应的库nacos_config(一般叫这个,可以改),并且相应的nacos数据库表,docker启动的mysql可以通过MYSQL_DATABASE=nacos_config指定创建一个新的数据库,通过挂载相应的数据卷path to/nacos-mysql.sql:/docker-entrypoint-initdb.d/nacos-mysql.sql可以对该库执行sql脚本!


version: "3.9"
services:
  mysql:
    image: mysql:8.0.28
    container_name: mysql
    ports:
      - "3306:3306"
    volumes:
      - "/var/lib/docker/volumes/mysql_data:/var/lib/mysql"
      - "./nacos-mysql.sql:/docker-entrypoint-initdb.d/nacos-mysql.sql"
    environment:
      - "MYSQL_ROOT_PASSWORD=123456"
      - "MYSQL_DATABASE=nacos_config"
    networks:
      - "nacos_network"
  nacos:
    image: nacos/nacos-server:v2.0.4
    container_name: nacos
    ports:
      - "8848:8848"
    environment:
      - "PREFER_HOST_MODE=hostname"
      - "JVM_XMS=256m"
      - "JVM_XMX=256m"
      - "JVM_XMN=128m"
      - "MODE=standalone"
      - "SPRING_DATASOURCE_PLATFORM=mysql"
      - "MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true"
      - "MYSQL_SERVICE_HOST=mysql"
      - "MYSQL_SERVICE_PORT=3306"
      - "MYSQL_SERVICE_USER=root"
      - "MYSQL_SERVICE_PASSWORD=123456"
      - "MYSQL_SERVICE_DB_NAME=nacos_config"
    networks:
      - "nacos_network"
    depends_on:
      - mysql

networks:
  nacos_network:


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM