nacos启动报错 load derby-schema.sql error

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 这篇文章描述了作者在使用Nacos时遇到的启动错误,错误提示为加载derby-schema.sql失败,作者通过将数据库从Derby更换为MySQL解决了问题。

nacos

今天在使用nacos时,启动时一直报错,错误日志如下:
在这里插入图片描述

2024-09-16 08:27:57 Caused by: java.lang.RuntimeException: com.alibaba.nacos.api.exception.runtime.NacosRuntimeException: errCode: 500, errMsg: load derby-schema.sql error. 
2024-09-16 08:27:57     at com.alibaba.nacos.config.server.service.datasource.DynamicDataSource.getDataSource(DynamicDataSource.java:60)
2024-09-16 08:27:57     at com.alibaba.nacos.config.server.service.repository.embedded.StandaloneDatabaseOperateImpl.init(StandaloneDatabaseOperateImpl.java:60)
2024-09-16 08:27:57     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2024-09-16 08:27:57     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
2024-09-16 08:27:57     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2024-09-16 08:27:57     at java.lang.reflect.Method.invoke(Method.java:498)
2024-09-16 08:27:57     at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389)
2024-09-16 08:27:57     at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333)
2024-09-16 08:27:57     at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157)
2024-09-16 08:27:57     ... 125 common frames omitted
2024-09-16 08:27:57 Caused by: com.alibaba.nacos.api.exception.runtime.NacosRuntimeException: errCode: 500, errMsg: load derby-schema.sql error. 
2024-09-16 08:27:57     at com.alibaba.nacos.config.server.service.datasource.LocalDataSourceServiceImpl.reload(LocalDataSourceServiceImpl.java:100)
2024-09-16 08:27:57     at com.alibaba.nacos.config.server.service.datasource.LocalDataSourceServiceImpl.initialize(LocalDataSourceServiceImpl.java:167)
2024-09-16 08:27:57     at com.alibaba.nacos.config.server.service.datasource.LocalDataSourceServiceImpl.init(LocalDataSourceServiceImpl.java:83)
2024-09-16 08:27:57     at com.alibaba.nacos.config.server.service.datasource.DynamicDataSource.getDataSource(DynamicDataSource.java:49)
2024-09-16 08:27:57     ... 133 common frames omitted
2024-09-16 08:27:57 Caused by: java.sql.SQLTimeoutException: Login timeout exceeded.
2024-09-16 08:27:57     at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
2024-09-16 08:27:57     at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
2024-09-16 08:27:57     at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
2024-09-16 08:27:57     at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
2024-09-16 08:27:57     at org.apache.derby.jdbc.InternalDriver.timeLogin(Unknown Source)
2024-09-16 08:27:57     at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
2024-09-16 08:27:57     at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
2024-09-16 08:27:57     at org.apache.derby.jdbc.EmbeddedDriver.connect(Unknown Source)
2024-09-16 08:27:57     at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138)
2024-09-16 08:27:57     at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:354)
2024-09-16 08:27:57     at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202)
2024-09-16 08:27:57     at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:473)
2024-09-16 08:27:57     at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:554)
2024-09-16 08:27:57     at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)
2024-09-16 08:27:57     at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
2024-09-16 08:27:57     at com.alibaba.nacos.config.server.service.datasource.LocalDataSourceServiceImpl.reload(LocalDataSourceServiceImpl.java:95)
2024-09-16 08:27:57     ... 136 common frames omitted
2024-09-16 08:27:57 Caused by: org.apache.derby.iapi.error.StandardException: Login timeout exceeded.
2024-09-16 08:27:57     at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
2024-09-16 08:27:57     at org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(Unknown Source)
2024-09-16 08:27:57     ... 152 common frames omitted
2024-09-16 08:27:57 2024-09-16 08:27:57,603 WARN [WatchFileCenter] start close

核心的错误:

  • Caused by: java.lang.RuntimeException: com.alibaba.nacos.api.exception.runtime.NacosRuntimeException: errCode: 500, errMsg: load derby-schema.sql error.
  • Caused by: com.alibaba.nacos.api.exception.runtime.NacosRuntimeException: errCode: 500, errMsg: load derby-schema.sql error.
  • Caused by: java.sql.SQLTimeoutException: Login timeout exceeded.

我的解决方法,将derby 换成 mysql

找到nacos的配置目录,找到其中的 application.propertiesmysql-schema.sql

在这里插入图片描述
在这里插入图片描述

  1. 将数据库初始化脚本执行,先创建一个数据库如:nacos_config, 执行完成后,数据表如下:

在这里插入图片描述

  1. 修改配置文件,需要注意的就是数据库url中的IP地址,需要换成真实的地址(我的是跑在docker中,所以就用了 172.17.0.1
spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://172.17.0.1:3306/nacos_config?characterEncoding=utf8&serverTimezone=Asia/Shanghai&connectTimeout=1000&socketTimeout=3000&autoReconnect=true # 网络地址需要你实际的地址,localhost(127.0.0.1)环回测试地址并不可用
db.user=root # 替换成你自己的
db.password=123456 # 替换成你自己的
  1. 解决
    在这里插入图片描述
    在这里插入图片描述

错误的解决方法!!!(删除derby)

解决方法:把nacos的数据卷映射目录中的/data/nacos/data/derby-data目录删除,然后重新启动。

这是一开始在某篇博客下看到的,删除掉derby后,nacos的数据会丢失,共享配置啥的…,错误的!
在这里插入图片描述

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
6月前
|
SQL Java 数据库连接
【YashanDB知识库】解决mybatis的mapper文件sql语句结尾加分号";"报错
【YashanDB知识库】解决mybatis的mapper文件sql语句结尾加分号";"报错
|
11月前
|
Java 数据库连接
nacos2.0.3报错No Datasource Set
nacos2.0.3报错No Datasource Set com.mysql.cj.exceptions.CJException: Public Key Retrieval is not allowed
nacos2.0.3报错No Datasource Set
|
6月前
|
SQL
【YashanDB知识库】使用leading hint调整SQL执行计划后报错YAS-04522 invalid hint leading
【YashanDB知识库】使用leading hint调整SQL执行计划后报错YAS-04522 invalid hint leading
【YashanDB知识库】使用leading hint调整SQL执行计划后报错YAS-04522 invalid hint leading
|
6月前
|
SQL Java 数据库连接
【YashanDB 知识库】解决 mybatis 的 mapper 文件 sql 语句结尾加分号";"报错
【YashanDB 知识库】解决 mybatis 的 mapper 文件 sql 语句结尾加分号";"报错
|
7月前
|
SQL 数据库
数据库数据恢复—SQL Server报错“错误 823”的数据恢复案例
SQL Server数据库附加数据库过程中比较常见的报错是“错误 823”,附加数据库失败。 如果数据库有备份则只需还原备份即可。但是如果没有备份,备份时间太久,或者其他原因导致备份不可用,那么就需要通过专业手段对数据库进行数据恢复。
|
7月前
|
SQL
【YashanDB 知识库】使用 leading hint 调整 SQL 执行计划后报错 YAS-04522 invalid hint leading
在 YashanDB 的所有版本中,使用 leading hint 调整 SQL 执行计划时可能出现“YAS-04522 invalid hint leading”错误,导致 SQL 无法正常执行。原因是 YashanDB 优化器的 Bug。解决方法为避免使用 leading hint。可通过创建测试表 a、b、c 并执行特定 SQL 语句来验证问题是否存在。
|
11月前
|
SQL 关系型数据库 MySQL
|
12月前
|
SQL 数据库
SQL error : “No query“问题参考
本文介绍了解决SQL中"No query"错误的步骤,包括错误提示、正确的SQL语句写法,以及更多相关参考信息。错误的原因是在构建更新语句时字段赋值之间缺少逗号,导致SQL解析失败。文章还提供了正确格式的SQL语句和相关错误处理的参考链接。
204 3
SQL error : “No query“问题参考
|
12月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")

热门文章

最新文章