window下单机Nacos安装报错解决方案

516 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情

前言

今天在学习B站Java微服务项目的时候安装Nacos出现了一些问题,作为一个新手,花了近一个小时才把问题解决。所以想着把这次的经验写个文章,如果大家以后遇见也可以迅速在网上找到解决方案。

首先我先说下我的工具的版本:

  • JDK:1.8
  • springboot:2.2.1.RELEASE
  • springcloud: Hoxton.RELEASE
  • Nacos: nacos-server-1.1.4

正常的启动操作:

  • Linux/Unix/Mac

启动命令(standalone代表着单机模式运行,非集群模式)

启动命令:sh startup.sh -m standalone

  • Windows

启动命令:startup.cmd -m standalone 或者双击startup.cmd运行文件。

访问:http://localhost:8848/nacos

用户名密码:nacos/nacos

我当时是用的startup.cmd -m standalone 启动,-m standalone 意思是以单机身份启动

实际启动后

这报错。。。一直说具体请看下一条。。。

后来我去了日志,里面出现了好多次下面粗体标出的这个路径:

Caused by: java.lang.RuntimeException: load schema.sql error.org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Failed to create database 'D:\nacos\nacos\data\derby-data', see the next exception for details.)

最后在日志里面发现了下面这句话:

Caused by: org.apache.derby.impl.jdbc.EmbedSQLException: The database directory 'D:\nacos\nacos\data\derby-data' exists. However, it does not contain the expected 'service.properties' file. Perhaps Derby was brought down in the middle of creating this database. You may want to delete this directory and try creating the database again.

结论

也就是说你要把derby-data这个文件删除后重新启动,果然,成功了。

总结

至于为什么要删除后重新启动,讲真,我也不知道。因为我用的是别人直接给的文件,所以我想的是人家之前启动了一遍,这里面可能是他的生成文件。类似于java项目里面的target,有时候报错的话得把target删除重新启动,让其重新生成。

本来到这就结束了,但我还是战胜不了自己的好奇心,于是我去github上下载了一个最新的nacos:

下面是解压之后的子文件夹对比:

很明显,data和logs两个子文件夹在原始文件中是没有的。

结束语

这是我第一次发学习过程中的经验技术文章,因为处于学习阶段,所以工具都不是最新的,和目前的主流可能有很大差距,错误不具有普遍性。但还是想写写,等以后回过头可以看看自己的学习历程。如果文章哪里有补充的,大家可以在评论区留言哈。