97 Star 1.7K Fork 831

Halo / halo

 / 详情

使用halo 2.13.1部署使用外部mysql数据源报错

待办的
创建于  
2024-03-14 13:53

系统信息

version: "3"

services:
halo:
image: halohub/halo:2.13
container_name: halo
restart: on-failure:3
network_mode: "host"
volumes:
- ./halo2:/root/.halo2
command:
# 修改为自己已有的 MySQL 配置
- --spring.r2dbc.url=r2dbc:pool:mysql://localhost:3306/halodb
- --spring.r2dbc.username=xxxx
- --spring.r2dbc.password=xxxx
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://localhost:8090/
# 端口号 默认8090
- --server.port=8090

使用的哪种方式运行?

Docker Compose

发生了什么?

使用docker-compose版本 Docker Compose version v2.23.3
使用docker版本Docker version 25.0.4, build 1a576c5
java 版本:java 17和java 21都试过了,同样问题
在mysql中按教程要求建库建表(mysql版本:8.0.28):
create database halodb character set utf8mb4 collate utf8mb4_bin;

create table extensions
(
name varchar(255) not null primary key,
data longblob null,
version bigint null
);
目前执行启动后能够在halodb的extensions插入一批初始数据,但随后在程序中便报解析错误,相关报错信息如下:

相关日志输出

2024-03-14T13:44:10.176+08:00  WARN 7 --- [           main] onfigReactiveWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [byte] for value [{"apiVersion":"v1alpha1"]
halo  | 2024-03-14T13:44:10.190+08:00  INFO 7 --- [           main] r.h.a.e.c.DefaultControllerManager       : Shutting down 0 controllers...
halo  | 2024-03-14T13:44:10.191+08:00  INFO 7 --- [           main] r.h.a.e.c.DefaultControllerManager       : Shutdown 0 controllers.
halo  | 2024-03-14T13:44:10.195+08:00  INFO 7 --- [           main] r.h.a.e.controller.DefaultController     : Disposing controller garbage-collector-controller
halo  | 2024-03-14T13:44:10.195+08:00  INFO 7 --- [           main] r.h.a.e.controller.DefaultController     : Controller garbage-collector-controller is disposed
halo  | 2024-03-14T13:44:12.251+08:00  INFO 7 --- [           main] .s.b.a.l.ConditionEvaluationReportLogger : 
halo  | 
halo  | Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
halo  | 2024-03-14T13:44:12.289+08:00 ERROR 7 --- [           main] o.s.boot.SpringApplication               : Application run failed
halo  | 
halo  | org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [byte] for value [{"apiVersion":"v1alpha1"]
halo  |         at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:47) ~[spring-core-6.1.4.jar:6.1.4]
halo  |         at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:182) ~[spring-core-6.1.4.jar:6.1.4]
halo  |         at org.springframework.core.convert.support.StringToArrayConverter.convert(StringToArrayConverter.java:72) ~[spring-core-6.1.4.jar:6.1.4]
halo  |         at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:41) ~[spring-core-6.1.4.jar:6.1.4]
halo  |         at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:182) ~[spring-core-6.1.4.jar:6.1.4]
halo  |         at org.springframework.data.relational.core.conversion.MappingRelationalConverter.getPotentiallyConvertedSimpleRead(MappingRelationalConverter.java:656) ~[spring-data-relational-3.2.3.jar:3.2.3]
halo  |         at org.springframework.data.relational.core.conversion.MappingRelationalConverter$DefaultConversionContext.convert(MappingRelationalConverter.java:828) ~[spring-data-relational-3.2.3.jar:3.2.3]
halo  |         at org.springframework.data.relational.core.conversion.MappingRelationalConverter$ConversionContext.convert(MappingRelationalConverter.java:934) ~[spring-data-relational-3.2.3.jar:3.2.3]
halo  |         at org.springframework.data.relational.core.conversion.MappingRelationalConverter$DocumentValueProvider.getPropertyValue(MappingRelationalConverter.java:1098) ~[spring-data-relational-3.2.3.jar:3.2.3]
halo  |         at org.springframework.data.relational.core.conversion.MappingRelationalConverter$DocumentValueProvider.getPropertyValue(MappingRelationalConverter.java:1057) ~[spring-data-relational-3.2.3.jar:3.2.3]
halo  |         at org.springframework.data.relational.core.conversion.MappingRelationalConverter.readProperties(MappingRelationalConverter.java:546) ~[spring-data-relational-3.2.3.jar:3.2.3]
halo  |         at org.springframework.data.relational.core.conversion.MappingRelationalConverter.populateProperties(MappingRelationalConverter.java:513) ~[spring-data-relational-3.2.3.jar:3.2.3]
halo  |         at org.springframework.data.relational.core.conversion.MappingRelationalConverter.read(MappingRelationalConverter.java:446) ~[spring-data-relational-3.2.3.jar:3.2.3]
halo  |         at org.springframework.data.relational.core.conversion.MappingRelationalConverter.readAggregate(MappingRelationalConverter.java:339) ~[spring-data-relational-3.2.3.jar:3.2.3]
halo  |         at org.springframework.data.relational.core.conversion.MappingRelationalConverter.readAggregate(MappingRelationalConverter.java:302) ~[spring-data-relational-3.2.3.jar:3.2.3]
halo  |         at org.springframework.data.relational.core.conversion.MappingRelationalConverter.read(MappingRelationalConverter.java:289) ~[spring-data-relational-3.2.3.jar:3.2.3]
halo  |         at org.springframework.data.relational.core.conversion.MappingRelationalConverter.project(MappingRelationalConverter.java:179) ~[spring-data-relational-3.2.3.jar:3.2.3]
halo  |         at org.springframework.data.r2dbc.core.R2dbcEntityTemplate.lambda$getRowsFetchSpec$15(R2dbcEntityTemplate.java:840) ~[spring-data-r2dbc-3.2.3.jar:3.2.3]
halo  |         at io.asyncer.r2dbc.mysql.MySqlResult.lambda$map$1(MySqlResult.java:87) ~[r2dbc-mysql-1.0.6.jar:1.0.6]
halo  |         at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:179) ~[reactor-core-3.6.3.jar:3.6.3]
halo  |         at reactor.core.publisher.FluxHandleFuseable$HandleFuseableConditionalSubscriber.onNext(FluxHandleFuseable.java:505) ~[reactor-core-3.6.3.jar:3.6.3]
halo  |         at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) ~[reactor-core-3.6.3.jar:3.6.3]
halo  |         at io.asyncer.r2dbc.mysql.internal.util.DiscardOnCancelSubscriber.onNext(DiscardOnCancelSubscriber.java:66) ~[r2dbc-mysql-1.0.6.jar:1.0.6]
halo  |         at reactor.core.publisher.FluxWindowPredicate$WindowFlux.drainRegular(FluxWindowPredicate.java:670) ~[reactor-core-3.6.3.jar:3.6.3]
halo  |         at reactor.core.publisher.FluxWindowPredicate$WindowFlux.drain(FluxWindowPredicate.java:748) ~[reactor-core-3.6.3.jar:3.6.3]
halo  |         at reactor.core.publisher.FluxWindowPredicate$WindowFlux.onNext(FluxWindowPredicate.java:790) ~[reactor-core-3.6.3.jar:3.6.3]
halo  |         at reactor.core.publisher.FluxWindowPredicate$WindowPredicateMain.onNext(FluxWindowPredicate.java:268) ~[reactor-core-3.6.3.jar:3.6.3]
halo  |         at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onNext(MonoFlatMapMany.java:251) ~[reactor-core-3.6.3.jar:3.6.3]
halo  |         at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:210) ~[reactor-core-3.6.3.jar:3.6.3]
halo  |         at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) ~[reactor-core-3.6.3.jar:3.6.3]
halo  |         at io.asyncer.r2dbc.mysql.internal.util.DiscardOnCancelSubscriber.onNext(DiscardOnCancelSubscriber.java:66) ~[r2dbc-mysql-1.0.6.jar:1.0.6]
halo  |         at reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onNext(FluxPeekFuseable.java:854) ~[reactor-core-3.6.3.jar:3.6.3]
halo  |         at reactor.core.publisher.FluxHandle$HandleConditionalSubscriber.onNext(FluxHandle.java:343) ~[reactor-core-3.6.3.jar:3.6.3]
halo  |         at reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onNext(FluxPeekFuseable.java:854) ~[reactor-core-3.6.3.jar:3.6.3]
halo  |         at reactor.core.publisher.SinkManyEmitterProcessor.drain(SinkManyEmitterProcessor.java:476) ~[reactor-core-3.6.3.jar:3.6.3]
halo  |         at reactor.core.publisher.SinkManyEmitterProcessor.tryEmitNext(SinkManyEmitterProcessor.java:273) ~[reactor-core-3.6.3.jar:3.6.3]
halo  |         at reactor.core.publisher.SinkManySerialized.tryEmitNext(SinkManySerialized.java:100) ~[reactor-core-3.6.3.jar:3.6.3]
halo  |         at reactor.core.publisher.InternalManySink.emitNext(InternalManySink.java:27) ~[reactor-core-3.6.3.jar:3.6.3]
halo  |         at io.asyncer.r2dbc.mysql.client.ReactorNettyClient$ResponseSink.next(ReactorNettyClient.java:383) ~[r2dbc-mysql-1.0.6.jar:1.0.6]
halo  |         at io.asyncer.r2dbc.mysql.client.ReactorNettyClient.lambda$new$0(ReactorNettyClient.java:121) ~[r2dbc-mysql-1.0.6.jar:1.0.6]
halo  |         at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:185) ~[reactor-core-3.6.3.jar:3.6.3]
halo  |         at reactor.netty.channel.FluxReceive.drainReceiver(FluxReceive.java:294) ~[reactor-netty-core-1.1.16.jar:1.1.16]
halo  |         at reactor.netty.channel.FluxReceive.onInboundNext(FluxReceive.java:403) ~[reactor-netty-core-1.1.16.jar:1.1.16]
halo  |         at reactor.netty.channel.ChannelOperations.onInboundNext(ChannelOperations.java:426) ~[reactor-netty-core-1.1.16.jar:1.1.16]
halo  |         at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) ~[reactor-netty-core-1.1.16.jar:1.1.16]
halo  |         at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[netty-transport-4.1.107.Final.jar:4.1.107.Final]
halo  |         at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.107.Final.jar:4.1.107.Final]
halo  |         at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.107.Final.jar:4.1.107.Final]
halo  |         at io.asyncer.r2dbc.mysql.client.MessageDuplexCodec.handleDecoded(MessageDuplexCodec.java:162) ~[r2dbc-mysql-1.0.6.jar:1.0.6]
halo  |         at io.asyncer.r2dbc.mysql.client.MessageDuplexCodec.channelRead(MessageDuplexCodec.java:73) ~[r2dbc-mysql-1.0.6.jar:1.0.6]
halo  |         at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) ~[netty-transport-4.1.107.Final.jar:4.1.107.Final]
halo  |         at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.107.Final.jar:4.1.107.Final]
halo  |         at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.107.Final.jar:4.1.107.Final]
halo  |         at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) ~[netty-codec-4.1.107.Final.jar:4.1.107.Final]
halo  |         at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:333) ~[netty-codec-4.1.107.Final.jar:4.1.107.Final]
halo  |         at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:454) ~[netty-codec-4.1.107.Final.jar:4.1.107.Final]
halo  |         at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) ~[netty-codec-4.1.107.Final.jar:4.1.107.Final]
halo  |         at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[netty-transport-4.1.107.Final.jar:4.1.107.Final]
halo  |         at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.107.Final.jar:4.1.107.Final]
halo  |         at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.107.Final.jar:4.1.107.Final]
halo  |         at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.107.Final.jar:4.1.107.Final]
halo  |         at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) ~[netty-transport-4.1.107.Final.jar:4.1.107.Final]
halo  |         at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.107.Final.jar:4.1.107.Final]
halo  |         at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.107.Final.jar:4.1.107.Final]
halo  |         at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) ~[netty-transport-classes-epoll-4.1.107.Final.jar:4.1.107.Final]
halo  |         at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:509) ~[netty-transport-classes-epoll-4.1.107.Final.jar:4.1.107.Final]
halo  |         at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:407) ~[netty-transport-classes-epoll-4.1.107.Final.jar:4.1.107.Final]
halo  |         at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.107.Final.jar:4.1.107.Final]
halo  |         at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.107.Final.jar:4.1.107.Final]
halo  |         at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.107.Final.jar:4.1.107.Final]
halo  |         at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]
halo  |         Suppressed: java.lang.Exception: #block terminated with an error
halo  |                 at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:103) ~[reactor-core-3.6.3.jar:3.6.3]
halo  |                 at reactor.core.publisher.Mono.block(Mono.java:1779) ~[reactor-core-3.6.3.jar:3.6.3]
halo  |                 at run.halo.app.extension.ReactiveExtensionClientImpl$IndexBuildsManager$1.list(ReactiveExtensionClientImpl.java:352) ~[classes/:2.13.1]
halo  |                 at run.halo.app.extension.index.DefaultExtensionIterator.loadData(DefaultExtensionIterator.java:37) ~[classes/:na]
halo  |                 at run.halo.app.extension.index.DefaultExtensionIterator.<init>(DefaultExtensionIterator.java:33) ~[classes/:na]
halo  |                 at run.halo.app.extension.ReactiveExtensionClientImpl$IndexBuildsManager.createExtensionIterator(ReactiveExtensionClientImpl.java:355) ~[classes/:2.13.1]
halo  |                 at run.halo.app.extension.ReactiveExtensionClientImpl$IndexBuildsManager.createIndexerFor(ReactiveExtensionClientImpl.java:381) ~[classes/:2.13.1]
halo  |                 at java.base/java.util.concurrent.CopyOnWriteArrayList.forEach(Unknown Source) ~[na:na]
halo  |                 at java.base/java.util.Collections$UnmodifiableCollection.forEach(Unknown Source) ~[na:na]
halo  |                 at run.halo.app.extension.ReactiveExtensionClientImpl$IndexBuildsManager.startBuildingIndex(ReactiveExtensionClientImpl.java:363) ~[classes/:2.13.1]
halo  |                 at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source) ~[na:na]
halo  |                 at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[na:na]
halo  |                 at org.springframework.context.event.ApplicationListenerMethodAdapter.doInvoke(ApplicationListenerMethodAdapter.java:365) ~[spring-context-6.1.4.jar:6.1.4]
halo  |                 at org.springframework.context.event.ApplicationListenerMethodAdapter.processEvent(ApplicationListenerMethodAdapter.java:237) ~[spring-context-6.1.4.jar:6.1.4]
halo  |                 at org.springframework.context.event.ApplicationListenerMethodAdapter.onApplicationEvent(ApplicationListenerMethodAdapter.java:168) ~[spring-context-6.1.4.jar:6.1.4]
halo  |                 at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:185) ~[spring-context-6.1.4.jar:6.1.4]
halo  |                 at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:178) ~[spring-context-6.1.4.jar:6.1.4]
halo  |                 at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:156) ~[spring-context-6.1.4.jar:6.1.4]
halo  |                 at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:451) ~[spring-context-6.1.4.jar:6.1.4]
halo  |                 at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:384) ~[spring-context-6.1.4.jar:6.1.4]
halo  |                 at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:981) ~[spring-context-6.1.4.jar:6.1.4]
halo  |                 at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) ~[spring-context-6.1.4.jar:6.1.4]
halo  |                 at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:66) ~[spring-boot-3.2.3.jar:3.2.3]
halo  |                 at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.3.jar:3.2.3]
halo  |                 at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.3.jar:3.2.3]
halo  |                 at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.3.jar:3.2.3]
halo  |                 at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:149) ~[spring-boot-3.2.3.jar:3.2.3]
halo  |                 at run.halo.app.Application.main(Application.java:28) ~[classes/:2.13.1]
halo  |                 at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source) ~[na:na]
halo  |                 at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[na:na]
halo  |                 at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:91) ~[application/:na]
halo  |                 at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:53) ~[application/:na]
halo  |                 at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:58) ~[application/:na]
halo  | Caused by: java.lang.NumberFormatException: For input string: "{"apiVersion":"v1alpha1""
halo  |         at java.base/java.lang.NumberFormatException.forInputString(Unknown Source) ~[na:na]
halo  |         at java.base/java.lang.Integer.parseInt(Unknown Source) ~[na:na]
halo  |         at java.base/java.lang.Byte.parseByte(Unknown Source) ~[na:na]
halo  |         at java.base/java.lang.Byte.valueOf(Unknown Source) ~[na:na]
halo  |         at java.base/java.lang.Byte.valueOf(Unknown Source) ~[na:na]
halo  |         at org.springframework.util.NumberUtils.parseNumber(NumberUtils.java:197) ~[spring-core-6.1.4.jar:6.1.4]
halo  |         at org.springframework.core.convert.support.StringToNumberConverterFactory$StringToNumber.convert(StringToNumberConverterFactory.java:64) ~[spring-core-6.1.4.jar:6.1.4]
halo  |         at org.springframework.core.convert.support.StringToNumberConverterFactory$StringToNumber.convert(StringToNumberConverterFactory.java:50) ~[spring-core-6.1.4.jar:6.1.4]
halo  |         at org.springframework.core.convert.support.GenericConversionService$ConverterFactoryAdapter.convert(GenericConversionService.java:409) ~[spring-core-6.1.4.jar:6.1.4]
halo  |         at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:41) ~[spring-core-6.1.4.jar:6.1.4]
halo  |         ... 70 common frames omitted
halo  | 

附加信息

评论 (0)

上朝 创建了任务
上朝 添加了
 
bug
标签
上朝 修改了描述
上朝 修改了描述
展开全部操作日志

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(1)
Java
1
https://gitee.com/halo-dev/halo.git
git@gitee.com:halo-dev/halo.git
halo-dev
halo
halo

搜索帮助