H2数据库的安装和使用
H2数据库的下载地址:
https://www.h2database.com/html/main.html
在官网上选择一个版本进行下载,可以下载安装器或者直接下载软件包。这里我选择 “All Platforms (zip, 9.5 MB)” 版本,解压后,既可用于 Windows 平台,也可用于 Linux 平台(如下图所示)。
H2软件包目录结构
h2
|—bin
| |—h2-2.1.212.jar //H2数据库的jar包(驱动也在里面)
| |—h2.bat //Windows控制台启动脚本
| |—h2.sh //Linux控制台启动脚本
| |—h2w.bat //Windows控制台启动脚本(不带黑屏窗口)
|—docs //H2数据库的帮助文档(内有H2数据库的使用手册)
|—service //通过wrapper包装成服务。
|—src //H2数据库的源代码
|—build.bat //windows构建脚本
|—build.sh //linux构建脚本
windows下启动软件
我们可以进入到h2的bin目录下,点击h2.bat或者h2w.bat,运行软件。我这里选择的是点击h2w.bat(如上图蓝框),该方式会在后台运行。
Linux下启动软件
在 Linux 环境下,首先用上传命令rz等把压缩文件(.zip)上传到某个目录下,用unzip命令解压,自动解压到h2目录下,然后在h2/bin目录下,运行./h2.sh 文件来启动数据库服务,但不建议这样直接启动,因为需要带一些参数,需要进行如下修改:
1).复制h2.sh为h2_server.sh文件:
# cp h2.sh h2_server.sh
2).用vim编辑h2_server.sh,如下:
#!/bin/sh dir=$(dirname" 0 " ) j a v a − c p " 0") java -cp " 0")java−cp"dir/h2-2.1.212.jar: H 2 D R I V E R S : H2DRIVERS: H2DRIVERS:CLASSPATH" org.h2.tools.Server -tcpAllowOthers -webAllowOthers -webPort 8082 “$@”
3).说明:
org.h2.tools.Server: 以服务器模式启动;
-tcpAllowOthers: 允许远程机器通过TCP方式访问;
-webAllowOthers: 允许远程机器通过浏览器访问;
-webPort 8082: 默认的访问端口(8082为未被占用的端口,如果此端口已经被其他端口占用,则改为其他端口);
4).具体的运行方式:
chmod修改启动文件权限: # chmod +x h2_server.sh
输入如下命令后台运行: # nohup ./h2_server.sh & 回车
说明:nohup 命令可以在我们退出账户之后继续运行相应的进程,nohup 就是不挂起的意思(no hang up),& 表示让该进程实现后台运行。
该命令的一般形式为: # nohup command & 回车
创建h2数据库
创建数据库
H2启动后在桌面底部状态栏右边有一个黄色小图标:
我们可以在windows窗口右下角黄色小图标处,右键点击H2控制台的图标,选择”Create a new database…“,创建一个新的数据库。
然后进入到控制台设置界面,设置数据库的存放路径和数据库名(如test),访问的用户名和密码,点击Create,则创建出test数据库(如下图)。
这时候在bin目录下(当前目录)就会出现创建的数据库名称(如下图test.mv.db):
用鼠标左键点击屏幕右下角H2控制台黄色小图标,则出现浏览器控制台界面如下图:
注意:
如果无法点击进入浏览器控制台界面,可以右键点击屏幕右下角H2控制台黄色小图标选择status,出现如下界面后输入H2 Console URL的IP和端口号即可
JDBC URL: h2后填写test.mv.db所在文件夹路径
最好在H2目录下创建data子目录,把数据库文件存放在该目录下。用鼠标左键点击屏幕右下角H2控制台黄色小图标,则出现浏览器控制台界面如下图:
用鼠标左键点击屏幕右下角H2控制台黄色小图标,则出现浏览器控制台界面如下图:
这时候,打开h2/data目录(如果data目录不存在,会创建该目录 ),则发现刚才创建的数据库已在目录中(如下图):
数据库管理界面
点击测试或连接(Connect),则进入数据库管理界面(如下图)。
输入【show databases; 和 show tables; 】命令,显示H2默认的数据库和表名(如下图)。
数据库配置
我们可以点击【Preferences】按钮,进入到H2的配置界面,这里可以设置端口号等信息:
点击【Save】,会在当前用户目录下创建数据库配置文件 .h2.server.properties (windows即用户目录,Linux即home目录),见【图16】中的第一个红框。
点击【Translate】,会在h2/bin 目录下,创建一个 translation.properties 文件。
点击【Shutdown】,关闭h2控制台,停止h2数据库服务(屏幕右下角黄色小图标没了)。
如果没有手动配置 .h2.server.properties 文件,以 web-server 方式首次启动 H2 后,既用鼠标左键点击屏幕右下角H2控制台黄色小图标,就会出现web控制台界面,点击【Save】 按钮后就会在当前用户目录下自动创建该文件,或者每次连接【Connect】后,都会在当前用户目录下自动创建该文件。
#H2 Server Properties
#Wed December 27 13:14:20 CST 2023
webSSL=false
webAllowOthers=false
webPort=8082
0=Generic JNDI Data Source|javax.naming.InitialContext|java:comp/env/jdbc/Test|sa
1=Generic Teradata|com.teradata.jdbc.TeraDriver|jdbc:teradata://whomooz/|
2=Generic Snowflake|com.snowflake.client.jdbc.SnowflakeDriver|jdbc❄️//accountName.snowflakecomputing.com|
3=Generic Redshift|com.amazon.redshift.jdbc42.Driver|jdbc:redshift://endpoint:5439/database|
4=Generic Impala|org.cloudera.impala.jdbc41.Driver|jdbc:impala://clustername:21050/default|
5=Generic Hive 2|org.apache.hive.jdbc.HiveDriver|jdbc:hive2://clustername:10000/default|
6=Generic Hive|org.apache.hadoop.hive.jdbc.HiveDriver|jdbc:hive://clustername:10000/default|
7=Generic Azure SQL|com.microsoft.sqlserver.jdbc.SQLServerDriver|jdbc:sqlserver://http://name.database.windows.net:1433|
8=Generic Firebird Server|org.firebirdsql.jdbc.FBDriver|jdbc:firebirdsql:localhost:c:/temp/firebird/test|sysdba
9=Generic SQLite|org.sqlite.JDBC|jdbc:sqlite:test|sa
10=Generic DB2|com.ibm.db2.jcc.DB2Driver|jdbc:db2://localhost/test|
11=Generic Oracle|oracle.jdbc.driver.OracleDriver|jdbc:oracle:thin:@localhost:1521:XE|sa
12=Generic MS SQL Server 2000|com.microsoft.jdbc.sqlserver.SQLServerDriver|jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=sqlexpress|sa
13=Generic MS SQL Server 2005|com.microsoft.sqlserver.jdbc.SQLServerDriver|jdbc:sqlserver://localhost;DatabaseName=test|sa
14=Generic PostgreSQL|org.postgresql.Driver|jdbc:postgresql:test|
15=Generic MySQL|com.mysql.cj.jdbc.Driver|jdbc:mysql://localhost:3306/test|
16=Generic MariaDB|org.mariadb.jdbc.Driver|jdbc:mariadb://localhost:3306/test|
17=Generic HSQLDB|org.hsqldb.jdbcDriver|jdbc:hsqldb:test;hsqldb.default_table_type=cached|sa
18=Generic Derby (Server)|org.apache.derby.client.ClientAutoloadedDriver|jdbc:derby://localhost:1527/test;create=true|sa
19=Generic Derby (Embedded)|org.apache.derby.iapi.jdbc.AutoloadedDriver|jdbc:derby:test;create=true|sa
20=Generic H2 (Server)|org.h2.Driver|jdbc:h2:tcp://localhost/~/test|sa
21=Generic H2 (Embedded)|org.h2.Driver|jdbc:h2:~/test|sa
数据库工具
点击【Tools】,可以对H2数据库进行备份、还原、恢复、集群、运行脚本、删除文件等操作。
参考原文:H2内存数据库使用教程详解