nacos的部署以及nacos启动报错“Unable to start embedded Tomcat”(部分解决)

Posted 丘丘用户思思澪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nacos的部署以及nacos启动报错“Unable to start embedded Tomcat”(部分解决)相关的知识,希望对你有一定的参考价值。

这几天有一个基于yshop改编的SpringBoot的项目开发需求,本地需要下载使用nacos-server进行部署和开发,于是下载了nacos-server-2.0.3,并将其解压在一个没有中文路径的地方。

接下来根据nacos需求,设置了JAVA_HOME的环境变量:

修改了conf文件夹下数据库配置:

至于为什么数据库位置不是本地主要是图方便借用一下测试环境的数据库。如果数据库部署在本地的话运行conf文件夹下面的nacos-mysql.sql文件再对应设置数据库配置即可。

配置完了之后,进入bin文件夹,在此打开cmd,输入startup.cmd -m standalone命令即可以单机模式启动nacos。如果图方便的话,可以打开startup.cmd文件,将里面nacos的自动启动模式设置为单机模式(standalone),之后startup.cmd文件即可。下面是启动界面:

那么为什么不能直接启动呢?因为直接启动会以集群模式(cluster)启动,这样系统会报错(不会截长图):


不出意外的话,在正确配置环境之后,nacos应该正常启动才对。
但是不出意外的话,还是会出点意外:

报错了,“Unable to start embedded Tomcat
去网上搜一下nacos + Unable to start embedded Tomcat,一色的都是说该报错源于不是以单机模式启动nacos。
可是我们的确是以单机模式不是用集群模式启动的啊,上面starting with standalone写着呢,那是怎么回事捏?
然后我们细心的发现,报错是有日志的,赶紧去logs文件夹下面的nacos.log看看怎么回事:

一看,是数据库没有正常连接。然后去问了一下,发现是管理员把ip改了。。
得到了新的ip,这下试试:

还是报错,去看下日志(不会截长图):


这下坏了,看起来好像是底层代码哪里出了问题,和filter相关的没有一个正常启动的,但我现在手里只有一个打了包的nacos,并没有源码。按道理按照教程应该不会出这么大的错误啊,怎么回事捏?
突然想到何必在一台电脑面前耗死,要不换台电脑试试。
换了台电脑,正确配置好数据库信息、环境变量JAVA_HOMEstartup.cmd -m standalone命令启动,成功了。。。
所以最后也不知道为什么会出现 ERROR Exception starting filter [trafficReviseFilter]问题。

nacos部署手册

 

1.单机模式将内置数据库derby改为mysql:

 

踩坑: 

按照以上操作,启动nacos报错。 org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested 等等等等提到了timezone, 

解决加上

?serverTimezone=GMT%2B8 

 

 测试成功能写入数据库:

 

以上是关于nacos的部署以及nacos启动报错“Unable to start embedded Tomcat”(部分解决)的主要内容,如果未能解决你的问题,请参考以下文章

nacos部署手册

Nacos Server Docker部署集群踩坑

启动springboot项目连接nacos控制台报错com.alibaba.nacos.api.exception.NacosException: dataId invalid

nacos启动报错 db.num is null已解决

Nacos报错:[[ not found

Nacos源码解读与部署