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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 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的数据会丢失,共享配置啥的…,错误的!
在这里插入图片描述

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
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
|
27天前
|
SQL 关系型数据库 MySQL
这样的SQL执行为什么不会报错?optimizer_trace深度历险
【10月更文挑战第12天】本文探讨了一条看似错误但实际上能成功执行的SQL语句,通过开启MySQL的优化器追踪功能,详细分析了SQL的执行过程,揭示了子查询被优化器解析为连接操作的原因,最终解释了为何该SQL不会报错。文章不仅增进了对SQL优化机制的理解,也展示了如何利用优化器追踪解决实际问题。
|
2月前
|
SQL 数据库
SQL解析相关报错
SQL解析相关报错
45 5
|
1月前
|
SQL 关系型数据库 MySQL
|
2月前
|
SQL 数据库
SQL error : “No query“问题参考
本文介绍了解决SQL中"No query"错误的步骤,包括错误提示、正确的SQL语句写法,以及更多相关参考信息。错误的原因是在构建更新语句时字段赋值之间缺少逗号,导致SQL解析失败。文章还提供了正确格式的SQL语句和相关错误处理的参考链接。
SQL error : “No query“问题参考
|
2月前
|
关系型数据库 MySQL Java
flywa报错java.sql.SQLSyntaxErrorException: Unknown database ‘flyway‘
flywa报错java.sql.SQLSyntaxErrorException: Unknown database ‘flyway‘
35 1
|
2月前
|
关系型数据库 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)")
|
4月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
110 13
|
4月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
|
4月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
60 6