odbc mysql 自动重连_H2数据库远程连接

本文详细介绍了H2数据库的三种连接模式,重点讲解了如何配置远程连接和自动重连。通过修改数据库连接URL和配置文件,实现了H2数据库允许远程TCP连接,并展示了相关配置示例,包括在Spring中的数据源配置和优化设置。
摘要由CSDN通过智能技术生成

H2数据库支持如下3种连接模式:

内嵌模式(通过JDBC进行本地连接,应用和数据库在同一个JVM中)

服务器模式(通过JDBC或ODBC或TCP/IP进行远程连接)

混合模式(同时支持本地和远程连接)

数据库连接URL说明:

Topic

URL Format and Examples

嵌入式(本地)连接

jdbc:h2:[file:][] jdbc:h2:~/test jdbc:h2:file:/data/sample jdbc:h2:file:C:/data/sample (Windows only)

内存数据库(私有)

jdbc:h2:mem:

内存数据库(被命名)

jdbc:h2:mem: jdbc:h2:mem:test_mem

使用TCP/IP的服务器模式(远程连接)

jdbc:h2:tcp://[:]/[] jdbc:h2:tcp://localhost/~/test jdbc:h2:tcp://dbserv:8084/~/sample

使用SSL/TLS的服务器模式(远程连接)

jdbc:h2:ssl://[:]/ jdbc:h2:ssl://secureserv:8085/~/sample;

使用加密文件

jdbc:h2:;CIPHER=[AES|XTEA] jdbc:h2:ssl://secureserv/~/testdb;CIPHER=AES jdbc:h2:file:~/secure;CIPHER=XTEA

文件锁

jdbc:h2:;FILE_LOCK={NO|FILE|SOCKET} jdbc:h2:file:~/quickAndDirty;FILE_LOCK=NO jdbc:h2:file:~/private;CIPHER=XTEA;FILE_LOCK=SOCKET

仅打开存在的数据库

jdbc:h2:;IFEXISTS=TRUE jdbc:h2:file:~/sample;IFEXISTS=TRUE

当虚拟机退出时并不关闭数据库

jdbc:h2:;DB_CLOSE_ON_EXIT=FALSE

用户名和密码

jdbc:h2:[;USER=][;PASSWORD=] jdbc:h2:file:~/sample;USER=sa;PASSWORD=123

更新记入索引

jdbc:h2:;LOG=2 jdbc:h2:file:~/sample;LOG=2

调试跟踪项设置

jdbc:h2:;TRACE_LEVEL_FILE= jdbc:h2:file:~/sample;TRACE_LEVEL_FILE=3

忽略位置参数设置

jdbc:h2:;IGNORE_UNKNOWN_SETTINGS=TRUE

指定文件读写模式

jdbc:h2:;ACCESS_MODE_LOG=rws;ACCESS_MODE_DATA=rws

在Zip文件中的数据库

jdbc:h2:zip:!/ jdbc:h2:zip:~/db.zip!/test

兼容模式

jdbc:h2:;MODE= jdbc:h2:~/test;MODE=MYSQL

自动重连接

jdbc:h2:;AUTO_RECONNECT=TRUE jdbc:h2:tcp://localhost/~/test;AUTO_RECONNECT=TRUE

自动混合模式

jdbc:h2:;AUTO_SERVER=TRUE jdbc:h2:~/test;AUTO_SERVER=TRUE

更改其他设置

jdbc:h2:;=[;=...] jdbc:h2:file:~/sample;TRACE_LEVEL_SYSTEM_OUT=3

要想H2数据库能远程连接,必须设置其允许远程连接。

我们先来看一下H2数据库的默认设置:

由上图可知,默认情况下H2数据库的TCP服务端口为9092,客户端的端口为8082,PG服务的端口为5435。

集成H2到String中,配置H2数据库允许远程连接。(这种配置只适合嵌入式的配置,当配置了如下代码时,相当于已经启动了一个H2服务。)

factory-method="createTcpServer" init-method="start" destroy-method="stop">

修改h2.bat文件

@java -cp "h2-1.4.190.jar;%H2DRIVERS%;%CLASSPATH%" org.h2.tools.Console %* -tcpAllowOthers

@if errorlevel 1 pause

配置连接参数:

# h2

#=============================

jdbc.driver=org.h2.Driver

jdbc.url=jdbc:h2:tcp://192.168.1.121:9092/~/test

#jdbc.url=jdbc:h2:~/test

jdbc.username=sa

jdbc.password=

hibernate.dialect=org.hibernate.dialect.H2Dialect

hibernate.use_sql_comments=false

config.initialPoolSize=10

config.minPoolSize=20

config.maxPoolSize=350

config.maxIdleTime=70

config.acquireIncrement=5

config.idleConnectionTestPeriod=60

config.acquireRetryAttempts=5

数据源配置:

${jdbc.driver}

${jdbc.url}

${jdbc.username}

${jdbc.password}

${config.initialPoolSize}

${config.minPoolSize}

${config.maxPoolSize}

${config.automaticTestTable}

5000

${config.maxIdleTime}

${config.acquireIncrement}

${config.acquireIncrement}

启动服务端h2数据库,经测试本方式连接成功。

若想让浏览器也允许远程连接可修改H2\src\tools\WEB-INF下的web.xml文件

H2Console

org.h2.server.web.WebServlet

webAllowOthers

trace

1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值