nacos-group / nacos-docker

This project contains a Docker image meant to facilitate the deployment of Nacos .
Apache License 2.0
1.44k stars 907 forks source link

load derby-schema.sql error #317

Open surengang opened 1 year ago

surengang commented 1 year ago

docker-compose单机启动报此错误: nacos-standalone | 2023-02-20 13:51:00,408 WARN Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'namespaceControllerV2' defined in URL [jar:file:/home/nacos/target/nacos-server.jar!/BOOT-INF/classes!/com/alibaba/nacos/console/controller/v2/NamespaceControllerV2.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'namespaceOperationService' defined in URL [jar:file:/home/nacos/target/nacos-server.jar!/BOOT-INF/classes!/com/alibaba/nacos/console/service/NamespaceOperationService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'embeddedConfigInfoPersistServiceImpl' defined in URL [jar:file:/home/nacos/target/nacos-server.jar!/BOOT-INF/lib/nacos-config-2.2.0.jar!/com/alibaba/nacos/config/server/service/repository/embedded/EmbeddedConfigInfoPersistServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'standaloneDatabaseOperateImpl': Invocation of init method failed; nested exception is java.lang.RuntimeException: com.alibaba.nacos.api.exception.runtime.NacosRuntimeException: errCode: 500, errMsg: load derby-schema.sql error.

surengang commented 1 year ago

我想是我拉取的最新的镜像(2.2.0)针对于linux可能有bug吧,在window上是正常的,然后我刚刚在linux服务器上切换成了2.1.1版本也是正常的

saytesnake commented 1 year ago

@surengang

我这边的实践是,在多网卡多 IP 的服务器上,似乎 PREFER_HOST_MODE=ip 之后还需要配置 NACOS_SERVER_IP 到正确的网卡的 IP 才行,否者也是报错 derby-schema.sql error,试了 2.1.1、2.1.2、2.2.0 都是这样,单网卡单 IP 的情况没有出现。

Qloop commented 1 year ago

我也遇到了 2.1.1版本 相同报错。 重启容器后正常启动

paderlol commented 1 year ago

是的多网卡需要指定NACOS_SERVER_IP到正确ip

youngcle commented 1 year ago

我这里最后一个能在我的ubuntu上运行的docker镜像版本是2.1.1 此后的都一个状态,就是楼主的状态,包括2.2.1

与二楼一样 在我电脑的windows wls docker desktop环境下,不存在这个问题,可以正常运行

NACOS_SERVER_IP设置后没有变化

如此著名的一个项目,这么个显而易见的问题,能持续这么长时间,这么多版本,没有有效的官方回馈。

实在令人遗憾。

Accelerator96 commented 1 year ago

在k8s上运行也遇到这个问题 把这个配置调高就好了 不知道是不是因为derby数据库没启动成功nacos就往里面写入sql导致的 -Ddb.pool.config.connectionTimeout=60000

youngcle commented 1 year ago

赞,我刚试了,如你所说,正确答案。

我看到的第一个提出该解决方案的回复是,@Qloop在主仓库9742的回复(https://github.com/alibaba/nacos/issues/9742)

我不认同那边主仓库@KomachiSion的说法, 1、我用docker方式,就是为了屏蔽”环境问题”。 2、另外在我的机器上,2.1.1之前可以正常启动,后面就再也不行了,恰恰环境没变。我的硬件设备太过老旧?不适应心版本要求

如果docker-hub上镜像是社区官方发布的,我认为还是应该修复这个问题。

如果nacos社区认为 这问题不是问题,那么文档中应该更新,各个版本standalone模式对硬件环境有啥特殊要求,让使用者在上线之前自我检讨一下自己是不是目标用户。

现在问题更新了,是否能将-Ddb.pool.config.connectionTimeout改值做到启动脚本中?

没有更新之前,各位可以利用springboot的环境变量注入功能,设定一下该值 在启动容器时,在环境变量中,增加db_pool_config_connectionTimeout=60000

这样可以正常使用。 k8s同理。

Arjen10 commented 1 year ago

赞,我刚试了,如你所说,正确答案。

我看到的第一个提出该解决方案的回复是,@Qloop在主仓库9742的回复(alibaba/nacos#9742)

我不认同那边主仓库@KomachiSion的说法, 1、我用docker方式,就是为了屏蔽”环境问题”。 2、另外在我的机器上,2.1.1之前可以正常启动,后面就再也不行了,恰恰环境没变。我的硬件设备太过老旧?不适应心版本要求

如果docker-hub上镜像是社区官方发布的,我认为还是应该修复这个问题。

如果nacos社区认为 这问题不是问题,那么文档中应该更新,各个版本standalone模式对硬件环境有啥特殊要求,让使用者在上线之前自我检讨一下自己是不是目标用户。

现在问题更新了,是否能将-Ddb.pool.config.connectionTimeout改值做到启动脚本中?

没有更新之前,各位可以利用springboot的环境变量注入功能,设定一下该值 在启动容器时,在环境变量中,增加db_pool_config_connectionTimeout=60000

这样可以正常使用。 k8s同理。

good job,很好的提议

ravenmk3 commented 8 months ago

在k8s上运行也遇到这个问题 把这个配置调高就好了 不知道是不是因为derby数据库没启动成功nacos就往里面写入sql导致的 -Ddb.pool.config.connectionTimeout=60000

感谢,实测用环境变量也可以设置 DB_POOL_CONFIG_CONNECTIONTIMEOUT=6000000

hell0w0orld commented 6 months ago

@ravenmk3 没用啊,兄弟。nacos 2.1.1版本的镜像