【问题标题】:Java H2 Mixed mode (embedded and server) external connectionJava H2混合模式(嵌入式和服务器)外部连接
【发布时间】:2021-06-03 02:45:15
【问题描述】:

我正在尝试转换我现有的嵌入式 H2 数据库并启用到它的外部连接。 目前我的属性是

spring.datasource.url=jdbc:h2:file:./db;AUTO_SERVER=TRUE;AUTO_SERVER_PORT=9090
spring.datasource.driverClassName=org.h2.Driver
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

spring.h2.console.enabled=true
spring.h2.console.path=/h2
spring.h2.console.settings.web-allow-others=true
server.ssl.enabled=true
server.ssl.key-store-password=####
server.ssl.key-password=###
server.ssl.key-store-type=JKS
etc

对于以这种模式连接到我的数据库的本地连接,我似乎能够连接到 “jdbc:h2:file:./db;AUTO_SERVER=TRUE;AUTO_SERVER_PORT=9090”通过我的 intellej IDE。

如果此数据库托管在外部服务器上,我如何连接到它? 我尝试将主机名放入此 URL,例如 jdbc:h2:file:123.456.789.10/db;AUTO_SERVER=TRUE;AUTO_SERVER_PORT=9090 但是无法连接。

【问题讨论】:

    标签: java database h2


    【解决方案1】:

    您需要在要存储数据库文件的主机上启动单独的 H2 Server 进程。 https://h2database.com/html/tutorial.html#using_server

    之后,您将能够通过远程 URL 使用远程连接: https://h2database.com/html/features.html#database_url 您还需要从应用程序中删除 H2 控制台,您将能够使用服务器的 Web 界面。

    不要忘记通过服务器上的 TCP 和 Web 端口启用远程访问。您还应该使用防火墙保护您的服务器,以防止不受信任的主机访问。 H2 不是一个安全容器,具有ADMIN 权限的数据库用户可以按设计作为服务器帐户完全访问系统,并且可能是安全管理器允许的。

    AUTO_SERVER 无法通过网络工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-12
      • 2016-06-11
      • 2014-06-04
      • 1970-01-01
      • 2018-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多