blossom-editor / blossom

A markdown editor that you can deploy on your own servers to achieve cloud storage and device synchronization(支持私有部署的云端存储双链笔记软件)
https://www.wangyunf.com/blossom-doc/index
MIT License
2.97k stars 231 forks source link

无法连接到数据库 #104

Closed LUAN-Z closed 5 months ago

LUAN-Z commented 5 months ago

docker已经挂载mysql,可以正常手动访问

docker挂载blossom

docker run -d \
  --name blossom-backend \
  -p 9999:9999 \
  -v /docker/blossom/:/home/bl/ \
  jasminexzzz/blossom:latest \
  --spring.datasource.url="jdbc:mysql://192.168.10.22:3306/blossom?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&allowMultiQueries=true&useSSL=false&&serverTimezone=GMT%2B8" \
  --spring.datasource.username=root \
  --spring.datasource.password=mysql_123456

运行docker logs blossom-backend后报错 报错信息 21:57:30.078 WARN [main ] [F0.06] .b.b.c.PropertiesCheckListener 39 :

正在检查 Blossom 后台配置项

[CHECK] ========================================================================================================================== [CHECK] 使用环境: [prod], 版本: [1.13.0-SNAPSHOT] [CHECK] ========================================================================================================================== [CHECK] 数据库配置: jdbc:mysql://192.168.10.22:3306/blossom?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&allowMultiQueries=true&useSSL=false&&serverTimezone=GMT%2B8 [CHECK] 数据库用户: root [CHECK] 数据库密码: mysql_123456 [CHECK] 文件前缀: http://www.google.com/, 非 [http://www.google.com/] 内容会强制覆盖后台配置 [CHECK] 文件存储: /home/bl/img/ [CHECK] 文件大小: 50MB [CHECK] 授权时长: 21600 [CHECK] 重置密码: false [CHECK] 指定时区: GMT+8 [CHECK] ==========================================================================================================================

21:57:30.085 WARN [main ] [F0.06] .b.b.c.PropertiesCheckListener 78 :

正在检查数据库连接

[CHECK] ========================================================================================================================== 21:57:30.290 INFO [nd-preinit] [ . ] o.h.v.internal.util.Version 21 : HV000001: Hibernate Validator 6.2.5.Final 21:58:01.490 ERROR[main ] [F0.06] c.z.hikari.pool.HikariPool 594: HikariPool-1 - Exception during pool initialization. com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836) at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:456) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197) at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364) at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476) at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:115) at com.zaxxer.hikari.HikariDataSource.(HikariDataSource.java:81) at cn.hutool.db.ds.hikari.HikariDSFactory.createDataSource(HikariDSFactory.java:60) at cn.hutool.db.ds.AbstractDSFactory.createDataSource(AbstractDSFactory.java:122) at cn.hutool.db.ds.AbstractDSFactory.getDataSource(AbstractDSFactory.java:82) at cn.hutool.db.ds.DSFactory.getDataSource(DSFactory.java:62) at com.blossom.backend.config.PropertiesCheckListener.onApplicationEvent(PropertiesCheckListener.java:86) at com.blossom.backend.config.PropertiesCheckListener.onApplicationEvent(PropertiesCheckListener.java:25) at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176) at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:131) at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:85) at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:66) at java.util.ArrayList.forEach(ArrayList.java:1259) at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:120) at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:114) at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:65) at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:343) at org.springframework.boot.SpringApplication.run(SpringApplication.java:301) at com.blossom.backend.APP.main(APP.java:26) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) at org.springframework.boot.loader.Launcher.launch(Launcher.java:108) at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65) Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61) at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105) at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151) at com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:167) at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:91) at com.mysql.cj.NativeSession.connect(NativeSession.java:144) at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:956) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:826) ... 37 common frames omitted Caused by: java.net.SocketTimeoutException: connect timed out at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:607) at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:155) at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:65) ... 40 common frames omitted 21:58:01.498 ERROR[main ] [F0.06] .b.b.c.PropertiesCheckListener 114:

[ERROR] ==========================================================================================================================

Failed to initialize pool: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

无法连接到数据库, 即将进一步确认... 无法连接到数据库IP端口 [192.168.10.22:3306]。

[ERROR] ==========================================================================================================================

xiaozzzi commented 5 months ago

如日志所示,应用容器无法连接到 192.168.10.22,可以尝试在命令中增加--network host,使容器访问宿主机的网络

LUAN-Z commented 5 months ago

解决了,问题是没有开放3306端口

lzclizechen commented 2 months ago

解决了,问题是没有开放3306端口

请问这个具体的解决方式是什么?

我这里遇到了相同的问题。可能有点区别。 我在绿联NAS上部署了mysql,通过dbgate可以访问。 但是blossom报相同的Error。

查看mysql日志,似乎没有收到请求。 看起来是blossom请求没有发出去?

lzclizechen commented 2 months ago

解决了,问题是没有开放3306端口

请问这个具体的解决方式是什么?

我这里遇到了相同的问题。可能有点区别。 我在绿联NAS上部署了mysql,通过dbgate可以访问。 但是blossom报相同的Error。

查看mysql日志,似乎没有收到请求。 看起来是blossom请求没有发出去?

已解决。通过dbgate,修改user-> root -> localhost 为 %。 命令修改方式不习惯,没有修改成功。通过工具修改成功后,启动成功。

还需要建立网络,给blossom和mysql