Contents

docker 部署 nacos 报错:No DataSource set

可能性有几种:

一:没有初始化 nacos 数据库,安装即可

https://raw.githubusercontent.com/alibaba/nacos/2.0.0/distribution/conf/nacos-mysql.sql

二:可能安装的版本不适配,比如我是 m1 芯片的,需要找特别的版本

docker run -d -p 8848:8848 -p 9848:9848 -p 9555:9555 --name nacos-server \
-e PREFER_HOST_MODE=hostname \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=192.168.123.163 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
-e MYSQL_SERVICE_DB_PARAM="characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&serverTimezone=Asia/Shanghai" \
--restart on-failure \
zill057/nacos-server-apple-silicon:2.0.3

注意: 这个版本启动要用这个地址 http://127.0.0.1:8848/nacos/ 登陆名/密码:nacos/nacos

三:MYSQL_SERVICE_HOST 没输入正确的内容

比如说上面的启动脚本中,我填得就是宿主机的 ip,因为 nacos 数据库就在本地数据库中。

四:本地数据库不支持远程访问,打开权限即可

以我用MySQL8为例

use mysql;
select host,user from user;
update user set host='%' where user='root';
flush privileges;

MySQL8 以前的版本(注意替换自己的用户名、密码):

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;