一、背景
最近在一台阿里云服务器上部署nacos,数据库用的也是阿里云mysql数据库,启动nacos的时候却报错"ErrMsg:Nacos Server did not start because dumpservice bean construction failure :
No DataSource set"
二、问题排查
数据库连接地址在本地测试的时候是连接成功的,mysql版本为8.0.18,url连接地址如下:
jdbc:mysql://【阿里云数据库地址】:3306/nacos?characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useUnicode=true&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
翻了全网类似的问题常见解决方法,逐个排查,依然报同一个错。
最后,用同样的nacos包和application.properties配置文件,在本地验证,启动成功。回归问题本质:无数据源设置。云服务器访问不到数据源,而我的本地可以,差别在哪里? 最能想到的差别就是云服务器和我本地的网段不同。所以猜想阿里云那台数据库对我的网段允许访问,而对云服务器禁止。
三、解决方法
在阿里云管理后台检查云数据库的白名单列表,里面并没有设置我部署的那台云服务的ip!
修改设置成功后,nacos启动成功。