一. nacos运行报错如下:
Server check fail, please check server xxx.xxx.xxx.xxx ,port 9848 is available , error = {}
原因:
因此docker运行nacos容器需要放开三个端口8848、9848、9849,例如:
docker docker pull nacos/nacos-server
PS:这是拉取最新的nacos版本,如果需要拉取别的版本可以加:版本号(如:docker pull nacos/nacos-server:v2.3.1)
docker run \
--name nacos2.3.1 -d \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
nacos/nacos-server:v2.3.1
二.若依cloud项目启动报错:
Error creating bean with name ‘sysConfigServiceImpl’: Invocation of init method failed
原因:nacos上的配置文件未正常配置,可以先登录到nacos控制台,在配置管理一栏看是否是空白的,是空白的则没有配置正确
假如是docker下载的nacos,配置nacos持久化,修改conf/application.properties文件,增加支持mysql数据源配置:
1.进入 Nacos Docker 容器:
使用以下命令进入正在运行的 Nacos 容器:
docker exec -it nacos /bin/bash
2.找到 application.properties 文件:
默认情况下,application.properties 文件位于 Nacos 容器的 /home/nacos/conf/ 目录下。你可以使用 ls 命令确认其位置:
ls /home/nacos/conf/
3.编辑 application.properties 文件:
使用 vi 或其他文本编辑器打开 application.properties 文件:
vi /home/nacos/conf/application.properties
4.在文件中添加或修改以下 MySQL 数据源配置:
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://<MYSQL_HOST>:<MYSQL_PORT>/<NACOS_DB_NAME>?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=<MYSQL_USER>
db.password=<MYSQL_PASSWORD>
请将 <MYSQL_HOST>, <MYSQL_PORT>, <NACOS_DB_NAME>, <MYSQL_USER>, 和 <MYSQL_PASSWORD> 替换为你自己的 MySQL 数据库信息。例如:
# db mysql
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://localhost:3306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=password
注意:spring.datasource.platform=mysql可能在application.properties被注释需放开,其他语句也有,只需对应修改即可
5.重启 Nacos Docker 容器:
完成配置后,退出编辑器并重启 Nacos 容器以使配置生效:
exit
docker restart nacos
验证配置:
重启后,你可以通过访问 Nacos 的管理界面或使用 Nacos 客户端来验证配置是否成功。确保 Nacos 能够连接到 MySQL 数据库,并且数据能够正确持久化。