阿里云服務(wù)器MySQL與nacos配置
(Nacos 啟動問題排查總結(jié))
一、問題現(xiàn)象
在部署 Nacos 時(shí),容器啟動后查看日志:
docker logs -f nacos
日志中出現(xiàn)報(bào)錯:
No DataSource set
同時(shí)在日志中還會看到:
Nacos dump service start
隨后服務(wù)啟動失敗或無法正常加載配置。
二、問題分析
該錯誤顯然說明 Nacos 沒有成功初始化數(shù)據(jù)庫數(shù)據(jù)源??赡茉蛑饕ǎ?/p>
- 數(shù)據(jù)庫連接配置錯誤
- 環(huán)境變量配置不完整
- Nacos 數(shù)據(jù)庫表未正確導(dǎo)入
通過逐步檢查:
1 檢查 Nacos 環(huán)境變量(容器間通信)
服務(wù)器中的 custom.env 文件內(nèi)容:
cat /root/nacos/custom.env
配置如下:
PREFER_HOST_MODE=hostname MODE=standalone SPRING_DATASOURCE_PLATFORM=mysql MYSQL_SERVICE_HOST=mysql MYSQL_SERVICE_DB_NAME=nacos MYSQL_SERVICE_PORT=3306 MYSQL_SERVICE_USER=root MYSQL_SERVICE_PASSWORD=改成你自己的 MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
這里筆者使用的阿里云服務(wù)器,數(shù)據(jù)庫的容器命名就是mysql,所以這里“MYSQL_SERVICE_HOST=mysql”,利用同一網(wǎng)絡(luò)下,容器之間能直接相互通信,配置檢查后發(fā)現(xiàn) 數(shù)據(jù)庫連接參數(shù)沒有問題。
2 檢查 MySQL 數(shù)據(jù)庫(是否存在nacos數(shù)據(jù)庫)
進(jìn)入 MySQL 容器:
docker exec -it mysql mysql -uroot -p
然后查看數(shù)據(jù)庫表:
use nacos; show tables;
此時(shí)我才發(fā)現(xiàn):
Empty set
說明 Nacos 數(shù)據(jù)庫表沒有導(dǎo)入成功。
三、問題原因
最終確認(rèn)問題原因是:
在之前導(dǎo)入 nacos.sql 初始化腳本時(shí),導(dǎo)入過程被中斷,導(dǎo)致數(shù)據(jù)庫表未完整創(chuàng)建。
因此 Nacos 啟動時(shí)無法找到需要的配置表,從而出現(xiàn):No DataSource set
四、解決方法
重新導(dǎo)入 Nacos 初始化數(shù)據(jù)庫腳本。
執(zhí)行:
mysql -uroot -p nacos < nacos.sql
或在 MySQL 中執(zhí)行:
source nacos.sql;
導(dǎo)入完成后再次檢查:
show tables;
可以看到數(shù)據(jù)庫中已生成多張表,例如:
config_info config_tags_relation group_capacity his_config_info permissions roles tenant_capacity users
說明數(shù)據(jù)庫初始化成功。
五、重新啟動 Nacos
重新啟動容器:
docker restart nacos
查看啟動日志:
docker logs -f nacos
日志顯示:
Tomcat started on port(s): 8848 (http) with context path '/nacos'
以及關(guān)鍵成功提示:
Nacos started successfully in stand alone mode. use external storage
六、驗(yàn)證結(jié)果
瀏覽器訪問:http://服務(wù)器IP:8848/nacos
登錄賬號:
nacos
nacos
成功進(jìn)入控制臺,說明 Nacos 服務(wù)已正常運(yùn)行并成功連接 MySQL 數(shù)據(jù)庫。
七、總結(jié)
本次問題的根本原因是:
Nacos 初始化數(shù)據(jù)庫腳本導(dǎo)入不完整,導(dǎo)致數(shù)據(jù)庫表缺失。
解決步驟:
- 檢查 Nacos 日志定位錯誤信息
No DataSource set - 確認(rèn)數(shù)據(jù)庫連接配置正確
- 進(jìn)入 MySQL 檢查數(shù)據(jù)庫表
- 重新導(dǎo)入
nacos.sql初始化腳本 - 重啟 Nacos 容器
- 日志出現(xiàn)
Nacos started successfully表示啟動成功

到此這篇關(guān)于阿里云服務(wù)器MySQL與nacos配置的文章就介紹到這了,更多相關(guān)阿里云MySQL與nacos配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL 備份失敗的問題:undo log 清理耗時(shí)10 小時(shí)的問題解決
本文將結(jié)合實(shí)際案例,剖析MySQL 8.0.18 環(huán)境下,因undo log清理耗時(shí)過長導(dǎo)致全備失敗的故障成因與解決路徑,并探討智能工具在數(shù)據(jù)庫故障診斷中的應(yīng)用價(jià)值,感興趣的朋友一起看看吧2025-06-06
如何解決Mysql報(bào)錯Deadlock found when trying to
這篇文章主要介紹了如何解決Mysql報(bào)錯Deadlock found when trying to get lock;try restarting transaction問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
MySQL中數(shù)據(jù)類型相關(guān)的優(yōu)化辦法
MySQL中json_extract()函數(shù)的使用實(shí)例
Mysql更換MyISAM存儲引擎為Innodb的操作記錄總結(jié)
mysql復(fù)制data文件遷移的實(shí)現(xiàn)步驟

