使用docker 部署 nacos-server:2.0.2 的 standalone 模式,出现以下错误:
nacos | Caused by: java.lang.RuntimeException: com.alibaba.nacos.api.exception.runtime.NacosRuntimeException: errCode: 500, errMsg: load schema.sql error. nacos | at com.alibaba.nacos.config.server.service.datasource.DynamicDataSource.getDataSource(DynamicDataSource.java:60) nacos | at com.alibaba.nacos.config.server.service.repository.embedded.StandaloneDatabaseOperateImpl.init(StandaloneDatabaseOperateImpl.java:60) nacos | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) nacos | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) nacos | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) nacos | at java.lang.reflect.Method.invoke(Method.java:498) nacos | at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:363) nacos | at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:307) nacos | at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:136) nacos | ... 158 common frames omitted nacos | Caused by: com.alibaba.nacos.api.exception.runtime.NacosRuntimeException: errCode: 500, errMsg: load schema.sql error. nacos | at com.alibaba.nacos.config.server.service.datasource.LocalDataSourceServiceImpl.reload(LocalDataSourceServiceImpl.java:102) nacos | at com.alibaba.nacos.config.server.service.datasource.LocalDataSourceServiceImpl.initialize(LocalDataSourceServiceImpl.java:169) nacos | at com.alibaba.nacos.config.server.service.datasource.LocalDataSourceServiceImpl.init(LocalDataSourceServiceImpl.java:85) nacos | at com.alibaba.nacos.config.server.service.datasource.DynamicDataSource.getDataSource(DynamicDataSource.java:49) nacos | ... 166 common frames omitted nacos | Caused by: java.sql.SQLTimeoutException: Login timeout exceeded. nacos | at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) nacos | at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) nacos | at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source) nacos | at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source) nacos | at org.apache.derby.jdbc.InternalDriver.timeLogin(Unknown Source) nacos | at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
不是每次都会复现的,在机器较为繁忙时(用docker-compose同时启动多个服务)出现该问题的几率较大。 翻阅了之前提的bug,有显示已修复该问题,但实际并未修复。 出现该问题时,nacos-server 容器状态是正常的,容器重启机制失效,不会因为出错而重启容器,导致要注册的服务全部启动失败。
原提问者GitHub用户Jnoee
derby 数据库是本地内存形数据库, 登陆超时大概率就是本地环境导致derby数据库无法响应导致的,从大家描述来看在系统繁忙时容易出现这个问题,应该和#3607不是同一个本质问题。
可以试着修改连接超时时间来看看能否解决。
原回答者GitHub用户KomachiSion
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。