虚拟机nacos运行失败?页面无法访问?看这篇就够了!!!
项目场景:
SpringCloud 项目开发,使用nacos进行微服务的注册发现和配置管理
虚拟系统:CentOS7
docker:mysql + nacos
问题描述
在docker中启动nacos容器异常,在nacos/logs下查看日志信息:
Error creating bean with name 'externalDumpService': Invocation of init method failed; nested exception is ErrCode:500, ErrMsg:Nacos Server did not start because dumpservice bean construction failure : No DataSource set
原因分析:
根据错误提示可以定位到是nacos中配置mysql数据库出现了问题。
配置文件在 【替换成你的路径】/nacos/init.d/下
打开文件,有关mysql数据库连接的配置如下:
### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.134.132:3306/nacos-1.4.1?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=mysql
解决方案:
这里数据库连接的地址不能是:localhost 或者 虚拟机的ip地址。
正确的ip是,执行以下命令:
docker inspect mysql | grep IPAddress #mysql是对应的容器名字
结果:
那么ip就是172.17.0.6,修改配置:
### Connect URL of DB:
db.url.0=jdbc:mysql://172.17.0.6:3306/nacos-1.4.1?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=mysql
重新运行nacos:
docker start nacos
访问:虚拟机ip:8848/nacos。显示正常。
其他排查思路:
1.查看防火墙状态:
systemctl status firewalld 查看防火墙状态
systemctl start firewalld 开启防火墙 (service firewalld start)
systemctl stop firewalld 关闭防火墙
systemctl disable firewalld.service 禁止开机启动防火墙
2.查看服务的端口号是否对外开放
(1)查询已经对外开放的端口
netstat -anp
(2)查询指定端口是否对外开发
firewall-cmd --query-port=8848/tcp
yes:开放 no:关闭
firewalld is not running表示需要打开防火墙再开放端口
systemctl start firewalld
(3)如果是关闭状态,则开放端口命令步骤是:
// 1.添加指定需要开放的端口:
firewall-cmd --add-port=8848/tcp --permanent
// 2.重载入添加的端口:
firewall-cmd --reload
// 3.查询指定端口是否开放成功:
firewall-cmd --query-port=8848/tcp
解决BUG不易,望解君忧!
nacos文档:Nacos 快速开始
虚拟机nacos运行失败?页面无法访问?看这篇就够了!!!
项目场景:
SpringCloud 项目开发,使用nacos进行微服务的注册发现和配置管理
虚拟系统:CentOS7
docker:mysql + nacos
问题描述
在docker中启动nacos容器异常,在nacos/logs下查看日志信息:
Error creating bean with name 'externalDumpService': Invocation of init method failed; nested exception is ErrCode:500, ErrMsg:Nacos Server did not start because dumpservice bean construction failure : No DataSource set
原因分析:
根据错误提示可以定位到是nacos中配置mysql数据库出现了问题。
配置文件在 【替换成你的路径】/nacos/init.d/下
打开文件,有关mysql数据库连接的配置如下:
### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.134.132:3306/nacos-1.4.1?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=mysql
解决方案:
这里数据库连接的地址不能是:localhost 或者 虚拟机的ip地址。
正确的ip是,执行以下命令:
docker inspect mysql | grep IPAddress #mysql是对应的容器名字
结果:
那么ip就是172.17.0.6,修改配置:
### Connect URL of DB:
db.url.0=jdbc:mysql://172.17.0.6:3306/nacos-1.4.1?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=mysql
重新运行nacos:
docker start nacos
访问:虚拟机ip:8848/nacos。显示正常。
其他排查思路:
1.查看防火墙状态:
systemctl status firewalld 查看防火墙状态
systemctl start firewalld 开启防火墙 (service firewalld start)
systemctl stop firewalld 关闭防火墙
systemctl disable firewalld.service 禁止开机启动防火墙
2.查看服务的端口号是否对外开放
(1)查询已经对外开放的端口
netstat -anp
(2)查询指定端口是否对外开发
firewall-cmd --query-port=8848/tcp
yes:开放 no:关闭
firewalld is not running表示需要打开防火墙再开放端口
systemctl start firewalld
(3)如果是关闭状态,则开放端口命令步骤是:
// 1.添加指定需要开放的端口:
firewall-cmd --add-port=8848/tcp --permanent
// 2.重载入添加的端口:
firewall-cmd --reload
// 3.查询指定端口是否开放成功:
firewall-cmd --query-port=8848/tcp
解决BUG不易,望解君忧!
nacos文档:Nacos 快速开始
发布评论