配置了单机启动(standalone),也配置了数据库,但是Nacos依然启动失败
问题发现:
在今天学习Nacos时,我下载安装解压好了Nacos包,我下载的是目前(2023.3.27)的最新版本的 Nacos 2.2.1,但是在启动时,不管是用官方的命令"startup.cmd -m standalone",还是直接双击"startup.cmd"都是会闪退,自然启动也是失败的。
解决窗口闪退问题:
然后我查找了资料,发现需要在"startup.cmd"的最后加上:
pause
endlocal
这样窗口就不会闪退了。
查看异常信息:
窗口闪退问题解决后,就可以看见完整的异常信息了,我的报错信息很长,大概有六七段error,只能从头开始看,第一段错误是(很长,我只把重点的以代码形式打出来):
ERROR Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException.org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
解决步骤:
1.配置standalone:
当然我自己也是看不明白,但是字面意思是Tomcat启动出问题了,只能去搜索"Unable to start embedded Tomcat",于是出现了以下结果:
大致意思就是说:Nacos默认启动方式为集群启动,但是我们个人只有一台主机,所以应该选择单机启动模式,所以需要重新配置。具体可参考文章:http://t.csdn.cn/uDVW7,这位博主还说了第二种错误:"Failed to create database ‘/data/soft/nacos/data/derby-data’",但是我没有遇到,所以这里就不细说了,需要的可以去看看上面的链接中的文章。
修改前:
修改后:
到这启动模式已经修改好了,但是启动报错一项没减少,很烦。
2.配置数据库(个人觉得可以不修改,但是还是写出来给大家参考参考):
接着我看到了第二个答案:
意思是配置文件/conf中有数据库文件,所以出错的原因可能是因为Nacos启动时需要对应的数据库环境,可以参考文章:http://t.csdn.cn/NfXbj和http://t.csdn.cn/b0rYp,第二篇文章写的更详细点,可以参考,但是我的包和他给的包不太一样:
他给的:
我的:
下面给出我的步骤:
打开Navicat;新建一个数据库(名字我不知道可不可以随便起,因为有的回答是随便新建一个数据库,但是上面这位博主起了"Nacos",那我也就用了"Nacos",毕竟看起来比较专业);然后运行mysql-schema.sql,虽然运行的文件名和上面这位博主的不同,但是我看了建出来的表是一样的;修改conf/application配置文件:
圈起来这部分修改为自己数据库的用户名和密码。
结束,但是报错依然没有减少。
3.检查端口有没有被占用:
很苦恼,因为我找的很多资料里都只有上面两种回答,我就想那我这问题可能是一个小众问题了,那会不会是我的电脑8848(Nacos默认端口)端口被占用了,于是我就检查了我的端口使用情况:
打开cmd->输入netstat -ano命令->查找端口号,本地地址ip后方冒号之后的就是端口号(下面圈出来的部分):
如果想查找特定端口号,可以使用netstat -ano | findstr "端口号"的命令,很遗憾,经过我仔细查看后,发现端口也并没有被占用。
4.正解:修改配置文件中Key值:
因为我是看黑马2021年的springcloud视频学习的,他们用的Nacos版本还为1.x,我觉得可能是新版本的一些问题,所以我就打算放弃用最新版本,改用配套资料里的1.x版本了,但是在我准备关闭cmd黑窗口时,我看见了最后的一个错误提示:
Caused by: java.lang.IllegalArgumentException: The specified key byte array is 0 bits which is not secure enough for any JWT HMAC-SHA algorithm. The JWT JWA Specification (RFC 7518, Section 3.2) states that keys used with HMAC-SHA algorithms MUST have a size >= 256 bits (the key size must be greater than or equal to the hash output size). See https://tools.ietf.org/html/rfc7518#section-3.2 for more information.at com.alibaba.nacos.plugin.auth.impl.jwt.NacosJwtParser.<init>(NacosJwtParser.java:56)at com.alibaba.nacos.plugin.auth.impl.token.impl.JwtTokenManager.processProperties(JwtTokenManager.java:71)... 115 common frames omitted
我抱着试一试的态度搜索了这个错误,然后看到了下面的回答:
意思就是:新版(2.x后)Nacos配置文件中的用于生成JWT令牌的密钥默认为空值,需要自己去conf/application文件中设置,可以设置为官方给的默认值:SecretKey012345678901234567890123456789012345678901234567890123456789,也可以自己去设置,自定义密钥时,推荐将配置项设置为Base64编码的字符串,且原始密钥长度不得低于32字符,可以参考文章:http://t.csdn.cn/cdtH8。我去看了官方文档,官方文档是这么说的:
修改
conf
目录下的application.properties
文件。设置其中的
nacos.core.auth.plugin.nacos.token.secret.key
值,详情可查看鉴权-自定义密钥.注意,文档中的默认值
SecretKey012345678901234567890123456789012345678901234567890123456789
和VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg=
为公开默认值,可用于临时测试,实际使用时请务必更换为自定义的其他有效值。
官方是强烈建议自定义密钥的,但是实际用上面的默认值也可以,我用默认值给大家看下修改的地方,其实就是conf
目录下的application.properties
文件:
修改完后,双击"startup.cmd",终于可以正常启动了:
按住Ctrl点击上面画圈的网址,也可以正常跳转到Nacos配置管理页面:
我是登录过的,第一次跳转成功是跳转到登陆页面,默认用户名和密码均为:"nacos",登录即可到达上面这个页面。
总结:
其实这次的这个问题仔细看看官方文档是可以很快解决的,但是呢,我一直没有看官方文档的习惯,所以这次花了很多时间,算是给我长了记性了。
我觉得其实数据库那个配置是可以不用更改的,总结一下吧,对于配置了单机启动()也配置了数据库,但是Nacos依然启动失败问题,检查下你是否配置了conf
目录下的application.properties
文件,设置其中的nacos.core.auth.plugin.nacos.token.secret.key
值。如果这篇文章还是不能解决你的问题,记得去读读官方文档:Nacos 快速开始。
配置了单机启动(standalone),也配置了数据库,但是Nacos依然启动失败相关推荐
- Redis单机系列文章--1.Redis单机的安装和配置(含视频)
转载请注明出处哈:http://carlosfu.iteye.com/blog/2240426 一.Redis单机下载.编译.安装: cd /opt/soft wget http://downlo ...
- 02Hadoop安装教程_单机、伪分布式配置
02 Hadoop2.7 安装教程_单机.伪分布式配置 文章目录 **02** Hadoop2.7 安装教程_单机.伪分布式配置 **1.hadoop基础知识** 1.1 hadoop是什么? 1.2 ...
- 单机hbase-2.4.15配置snappy压缩
单机hbase配置snappy压缩 前言 1. 过程比较坎坷,网上帖子说法不一,以下过程是参考几个帖子亲自走过一遍,并最终可以成功建表.2. 本人安装的所有目录均为/data/test-hbase,涉 ...
- 知乎爬虫(scrapy默认配置下单机1小时可爬取60多万条数据)
知乎爬虫(scrapy默认配置下单机1小时可爬取60多万条数据) 版本:1.0 作者: AlexTan CSDN: http://blog.csdn.net/alextan_ e-mail: alex ...
- Linux下配置jupyter notebook远程访问实战:配置Jupyter的连接密码、启动jupyter服务、远程访问jupyter(关闭防火墙)
Linux下配置jupyter notebook远程访问实战:配置Jupyter的连接密码.启动jupyter服务.远程访问jupyter(关闭防火墙) 目录 Linux下配置jupyter note ...
- oracle database firewall 配置 保护 db,Oracle DB control配置启动
今天打算启用一下Oracle Database 11g的Database Control,发现初始并未安装: [Oracle@test126 ~]$ emctl start EM Configurat ...
- Linux+nfs配置开机启动,linux NFS配置:NFS开机自动启用及其原理
这节我们讲NFS开机自动启动及其原理 NFS服务器端已经配置好了,但机器重启以后我们还要重新开启NFS服务.为了不这么麻烦,我们要让NFS和portmap服务在开机时自动启动,这样就会避免出现moun ...
- chrome应用程序无法启动因为并行配置不正确的处理办法(亲测版本不一样也是类似的操作)
有使用chrome谷歌浏览器的朋友可能会遇到这样的错误,那就是chrome.exe 应用程序无法启动因为应用程序的并行配置不正确,谷歌浏览器也打不开的情况,那么这一问题要如何解决呢?可能很多朋友不太了 ...
- linux内核启动配置,启动linux内核配置
启动linux内核配置 发布时间:2005-09-22 20:04:48来源:红联作者:ccs LILO 入门 现在是最后来重新配置 LILO 的时候了,它将负责载入新的内核.LILO 是最流行的 L ...
最新文章
- 日子过得真快,转眼就工作了4个月了
- 找字符串中第一个只出现一次的字符
- 决策树可视化,被惊艳到了!
- base64下载excel (使用blob)
- nio的应用 java_Java NIO 在网络编程中的应用
- python爬虫:其他操作
- 面试题:聊一聊设计模式的基本原则
- 奥鹏计算机基础2021,18春北语《计算机基础》作业3(参考答案)
- python调用bing翻译和有道翻译
- php使用p12证书调用第三方接口
- 免费IP切换工具有用吗?
- 蓝桥真题,跑步问题c语言解决方案
- UltraLAB台式图形工作站(图形+超算+私有云通吃~图灵超算工作站介绍)
- java排座位程序_java随机排座位
- win10动态壁纸怎么设置_教程丨WIN10系统下设置固定IP或动态IP
- ubuntu 打印git邮箱_win 10配置Ubuntu子系统—可以考虑放弃VMware了
- AT24C02数据存储
- 为企业出海“搭桥”,汇量科技靠什么出圈?
- RabbitMQ镜像队列与负载均衡
- java车牌识别系统mysql
热门文章
- python 中 open与with open 的区别
- 免费office哪个版本好用
- mac安装虚拟机VirtualBox+win7
- 翻译 项目管理艺术 2.2
- 最基础的-----基于maven进行的SSM框架的整合的全部配置文件.
- 肌酐清除率-肌酐清除率计算公式-什么是肌酐清除率 (转载www.jiganqingchulv.com)
- Mac安装rvm管理Ruby版本
- 基于imx8mq的NAU8822音频驱动开发
- Mini PCIe接口双频WiFi+BT5.0二合一RTL8822CE无线网卡
- 到公司做华为认证网络工程师有发展前途吗?