R2DBC Unable to create a ConnectionFactory for 'ConnectionFactoryOptions
我是用的是:
com.github.jasync-sql:jasync-r2dbc-mysql
Caused by: java.lang.IllegalStateException: Unable to create a ConnectionFactory for 'ConnectionFactoryOptions{options={database=r2jdbc, host=localhost, driver=mysql, characterEncoding=utf-8, password=REDACTED, serverTimezone=GMT+8, user=root, zeroDateTimeBehavior=convertToNull}}'. Available drivers: [ pool, mysql ]
at io.r2dbc.spi.ConnectionFactories.get(ConnectionFactories.java:145) ~[r2dbc-spi-0.8.5.RELEASE.jar:na]
at org.springframework.boot.r2dbc.ConnectionFactoryBuilder$OptionsCapableWrapper.buildAndWrap(ConnectionFactoryBuilder.java:203) ~[spring-boot-2.5.2.jar:2.5.2]
at org.springframework.boot.r2dbc.ConnectionFactoryBuilder$PoolingAwareOptionsCapableWrapper.buildAndWrap(ConnectionFactoryBuilder.java:216) ~[spring-boot-2.5.2.jar:2.5.2]
at org.springframework.boot.r2dbc.ConnectionFactoryBuilder.build(ConnectionFactoryBuilder.java:189) ~[spring-boot-2.5.2.jar:2.5.2]
at org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations.createConnectionFactory(ConnectionFactoryConfigurations.java:61) ~[spring-boot-autoconfigure-2.5.2.jar:2.5.2]
at org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$Pool.connectionFactory(ConnectionFactoryConfigurations.java:73) ~[spring-boot-autoconfigure-2.5.2.jar:2.5.2]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_191]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_191]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_191]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_191]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.3.8.jar:5.3.8]
... 71 common frames omitted
配置文件:
spring:
r2dbc:
url: "r2dbc:mysql://localhost/r2jdbc?characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2B8"
username: "root"
password: "root"
注意如果使用 com.github.jasync-sql:jasync-r2dbc-mysql,那么需要增加端口:localhost:3306
spring:
r2dbc:
url: "r2dbc:mysql://localhost:3306/r2jdbc?characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2B8"
username: "root"
password: "root"
如果使用 dev.miku:r2dbc-mysql 则无需加,会有默认值,但是目前发现 dev.miku:r2dbc-mysql 无法识别 serverTimezone 参数。