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