H2 Database安装部署

H2 Database

H2 Database官网

H2 中文文档

安装部署H2

java版本要高于java 11

## 下载java21
wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz[root@localhost ~]# tar xf  jdk-21_linux-x64_bin.tar.gz -C /usr/local/
[root@localhost ~]# vim /etc/profileexport JAVA_HOME=/usr/local/jdk-21.0.5
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar## 下载h2安装包
wget https://github.com/h2database/h2database/releases/download/version-2.3.232/h2-2024-08-11.zip## 创建数据目录
mkdir -p /data/h2## 启动h2
nohup java -cp h2-2.3.232.jar org.h2.tools.Server -web -webAllowOthers -tcp -tcpPort 9092 -tcpAllowOthers -pg -pgAllowOthers -pgPort 5432 -baseDir /data/h2/ &## 端口
root@PostgreSQL bin]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1353/sshd: /usr/sbi 
tcp6       0      0 :::9876                 :::*                    LISTEN      9806/java           
tcp6       0      0 :::22                   :::*                    LISTEN      1353/sshd: /usr/sbi 
tcp6       0      0 :::5432                 :::*                    LISTEN      13432/java          
tcp6       0      0 :::10909                :::*                    LISTEN      10001/java          
tcp6       0      0 :::10911                :::*                    LISTEN      10001/java          
tcp6       0      0 :::10912                :::*                    LISTEN      10001/java          
tcp6       0      0 :::9092                 :::*                    LISTEN      13432/java          
tcp6       0      0 :::8080                 :::*                    LISTEN      10001/java          
tcp6       0      0 :::8081                 :::*                    LISTEN      10001/java          
tcp6       0      0 :::8082                 :::*                    LISTEN      13432/java  

h2启动参数说明

参数描述
-web启动带有 H2 控制台的 web 服务器
-webAllowOthers允许其他计算机连接到 web 服务器
-tcp启动 TCP 服务器
-tcpPort <port>设置 TCP 服务器的端口
-tcpAllowOthers允许其他计算机连接到 TCP 服务器
-pg启动 PG 服务器(PostgreSQL 兼容)
-pgAllowOthers允许其他计算机连接到 PG 服务器
-pgPort <port>设置 PG 服务器的端口
-baseDir <dir>设置 H2 数据库的基础目录,所有数据库文件将存储在这个目录下(经过测试发现该参数不起作用)

官网介绍

连接H2

使用控制台连接

[root@PostgreSQL bin]# java -cp h2-2.3.232.jar org.h2.tools.ShellWelcome to H2 Shell 2.3.232 (2024-08-11)
Exit with Ctrl+C
[Enter]   jdbc:h2:~/test
URL       
[Enter]   org.h2.Driver
Driver    
[Enter]   
User      
Password  Password  ><
Connected
Commands are case insensitive; SQL statements end with ';'
help or ?      Display this help
list           Toggle result list / stack trace mode
maxwidth       Set maximum column width (default is 100)
autocommit     Enable or disable autocommit
history        Show the last 20 statements
quit or exit   Close the connection and exitsql> 

参数说明

参数描述
-help-?打印可用选项列表
-url "<url>"数据库的 URL(例如:jdbc:h2:…)
-user <user>用户名
-password <pwd>密码
-driver <class>要使用的 JDBC 驱动类(大多数情况下不需要指定)
-sql "<statements>"执行 SQL 语句并退出
-properties "<dir>"从指定目录加载服务器属性

从日志中可以看到连接地址

TCP server running at tcp://192.168.202.159:9092 (others can connect)
PG server running at pg://192.168.202.159:5432 (others can connect)
Web Console server running at http://192.168.202.159:8082 (others can connect)
创建新一个新数据库
缺省情况下,如果 URL 指定的数据库并不存在,一个新的空的数据库将被自动的创建。创建数据库的用户自动成为这个数据库的超级管理员。自动创建新库也可以通过特殊的 URL 进行屏蔽

介绍

创建表

CREATE [ CACHED | MEMORY ] [ { TEMP } | [ GLOBAL | LOCAL ] TEMPORARY ]
TABLE [ IF NOT EXISTS ] [schemaName.]tableName
[ ( { columnName [columnDefinition] | tableConstraintDefinition } [,...] ) ]
[ ENGINE tableEngineName ]
[ WITH tableEngineParamName [,...] ]
[ NOT PERSISTENT ] [ TRANSACTIONAL ]
[ AS ( query ) [ WITH [ NO ] DATA ] ]
sql> CREATE TABLE TEST(ID INT PRIMARY KEY, NAME VARCHAR(255));
(Update count: 0, 6 ms)
sql> show tables;
TABLE_NAME | TABLE_SCHEMA
TEST       | PUBLIC
(1 row, 24 ms)
sql> 
  • 缓存表(普通表的默认类型)是持久化的,其行数不受主内存限制。

  • 内存表是持久化的,但索引数据存储在主内存中,这意味着内存表不应过大。

查看表的列

SHOW { SCHEMAS | TABLES [ FROM schemaName ] |
COLUMNS FROM tableName [ FROM schemaName ] }
sql> show columns from test;
FIELD | TYPE                   | NULL | KEY | DEFAULT
ID    | INTEGER                | NO   | PRI | NULL
NAME  | CHARACTER VARYING(255) | YES  |     | NULL
(2 rows, 11 ms)

插入数据

CREATE TABLE timeseries_table (id SERIAL PRIMARY KEY,timestamp TIMESTAMP,data_column  DOUBLE);INSERT INTO timeseries_table (timestamp, data_column)
SELECTDATEADD('SECOND', CAST(floor(random() * 86400) AS INT), CURRENT_TIMESTAMP),  -- 当前时间到明天同一时间的随机时间floor(random() * 100000)  -- 随机数据列值
FROM generate_series(1, 1000000);

创建用户

CREATE USER [ IF NOT EXISTS ] newUserName
{ PASSWORD string | SALT bytes HASH bytes } [ ADMIN ]
-- 创建管理员用户
CREATE USER h2 PASSWORD 'h2' ADMIN;-- 查看用户
sql> select * from information_schema.users;
USER_NAME | IS_ADMIN | REMARKS| TRUE     | null
H2        | TRUE     | null
(2 rows, 0 ms)-- 查看参数配置
sql> select * from information_schema.settings limit(3);
SETTING_NAME       | SETTING_VALUE
CREATE_BUILD       | 232
info.BUILD_ID      | 232
info.VERSION_MAJOR | 2
(3 rows, 1 ms)
sql> -- 嵌入式连接、他会自动创建一个数据库和用户,直接访问的是本地文件,有个独占排他的功能(可以不限制是否是在数据库的base目录下)
java -cp h2-2.3.232.jar org.h2.tools.Shell -url "jdbc:h2:/root/tmp/h2/data" -user h2 -password h2Welcome to H2 Shell 2.3.232 (2024-08-11)
Exit with Ctrl+C
Commands are case insensitive; SQL statements end with ';'
help or ?      Display this help
list           切换结果显示模式(在“结果列表模式”和“堆栈跟踪模式”之间切换)
maxwidth       设置最大列宽(默认值为 100)
autocommit     启用或禁用自动提交
history        显示最近执行的 20 条语句
quit or exit   关闭连接并退出

创建数据库(不能再远程创建,只能由DBA给创建好)

[root@PostgreSQL bin]# java -cp h2-*.jar org.h2.tools.ShellWelcome to H2 Shell 2.3.232 (2024-08-11)
Exit with Ctrl+C
[Enter]   jdbc:h2:~/test
URL       jdbc:h2:/data/h2/test
[Enter]   org.h2.Driver
Driver    org.h2.Driver
[Enter]   
User      sa
Password  Password  >>><
Connected
Commands are case insensitive; SQL statements end with ';'
help or ?      Display this help
list           Toggle result list / stack trace mode
maxwidth       Set maximum column width (default is 100)
autocommit     Enable or disable autocommit
history        Show the last 20 statements
quit or exit   Close the connection and exitsql> [root@PostgreSQL bin]# java -cp h2-*.jar org.h2.tools.ShellWelcome to H2 Shell 2.3.232 (2024-08-11)
Exit with Ctrl+C
[Enter]   jdbc:h2:~/test
URL       jdbc:h2:/data/h2/fbase
[Enter]   org.h2.Driver
Driver    org.h2.Driver
[Enter]   
User      sa
Password  Password  >>><
Type the same password again to confirm database creation.
Password  Password  >>><
Connected-- 使用远程连接
java -cp h2-*.jar org.h2.tools.Shell -url "jdbc:h2:tcp://192.168.202.159:9092/test" -user sa -password sajava -cp h2-*.jar org.h2.tools.Shell -url "jdbc:h2:tcp://192.168.202.159:9092/fbase" -user sa -password sa

使用web控制台的连接
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/69290.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

回首2024,展望2025

2024年&#xff0c;是个充满挑战与惊喜的年份。在这366个日夜里&#xff0c;我站在编程与博客的交汇点&#xff0c;穿越了无数的风景与挑战&#xff0c;也迎来了自我成长的丰收时刻。作为开发者的第十年&#xff0c;我依然步伐坚定&#xff0c;心中始终带着对知识的渴望与对自我…

工具的应用——安装copilot

一、介绍Copilot copilot是一个AI辅助编程的助手&#xff0c;作为需要拥抱AI的程序员可以从此尝试进入&#xff0c;至于好与不好&#xff0c;应当是小马过河&#xff0c;各有各的心得。这里不做评述。重点在安装copilot的过程中遇到了一些问题&#xff0c;然后把它总结下&…

w181乐享田园系统的设计与实现

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;原创团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文…

基于 WEB 开发的手机销售管理系统设计与实现内容

标题:基于 WEB 开发的手机销售管理系统设计与实现 内容:1.摘要 摘要&#xff1a;随着智能手机的普及和电子商务的快速发展&#xff0c;手机销售行业面临着越来越多的挑战和机遇。为了提高销售效率和管理水平&#xff0c;本文设计并实现了一个基于 WEB 的手机销售管理系统。该系…

Redis万字面试题汇总

Redis 目录 1.讲一下Redis底层的数据结构 2.ZSet底层是怎么实现的&#xff1f; 3.Redis为什么使用跳表而不是用B树? 4.Redis为什么快&#xff1f; 5.Redis是怎么实现的IO多路复用&#xff1f; 6.为什么redis设计为单线程&#xff0c;却要在6.0版本引入多线程&#xff1f…

Ubuntu18.04 搭建DHCP服务器

在Ubuntu系统中&#xff0c;DHCP&#xff08;动态主机配置协议&#xff09;服务通常由isc-dhcp-server软件包提供。要配置和使用DHCP服务&#xff0c;你可以按照以下步骤操作&#xff1a; 1. 安装DHCP服务器 首先&#xff0c;你需要安装isc-dhcp-server。打开终端并输入以下命…

python实战(十五)——中文手写体数字图像CNN分类

一、任务背景 本次python实战&#xff0c;我们使用来自Kaggle的数据集《Chinese MNIST》进行CNN分类建模&#xff0c;不同于经典的MNIST数据集&#xff0c;我们这次使用的数据集是汉字手写体数字。除了常规的汉字“零”到“九”之外还多了“十”、“百”、“千”、“万”、“亿…

解决双系统引导问题:Ubuntu 启动时不显示 Windows 选项的处理方法

方法 1&#xff1a;检查 GRUB 引导菜单是否隐藏 启动进入 Ubuntu 系统。打开终端&#xff0c;输入以下命令编辑 GRUB 配置文件&#xff1a;sudo nano /etc/default/grub检查以下配置项&#xff1a; GRUB_TIMEOUT0&#xff1a;如果是 0&#xff0c;将其改为一个较大的值&#x…

Django网站搭建流程

使用Django搭建网站是一个系统的过程&#xff0c;涉及从环境搭建到部署上线的多个步骤。以下是详细的流程&#xff1a; 1. 环境搭建 &#xff08;1&#xff09;安装Python Django是基于Python的Web框架&#xff0c;因此需要先安装Python。建议安装Python 3.8及以上版本。 下载地…

【深入理解FFMPEG】命令行阅读笔记

这里写自定义目录标题 第三章 FFmpeg工具使用基础3.1 ffmpeg常用命令3.1.13.1.3 转码流程 3.2 ffprobe 常用命令3.2.1 ffprobe常用参数3.2.2 ffprobe 使用示例 3.3 ffplay常用命令3.3.1 ffplay常用参数3.3.2 ffplay高级参数3.3.4 ffplay快捷键 第4章 封装与解封装4.1 视频文件转…

为AI聊天工具添加一个知识系统 之72 详细设计之13 图灵机

本文要点 要点 实际上是要设计一个图灵机&#xff0c;利用λ转换规则和λ演算 来定义StringProcessor的发生产规则的转换功能。三种文法型运行图灵机来处理 不同的串---符号串&#xff0c; 数字串和文字串 一个 StrIngProcessor&#xff0c;图灵机&#xff08;利用λ转换规则…

BARN_dataset的生成代码jackal-map-creation-master的使用说明:

主要代码是gen_world_ca.py,其中有各个参数来调节&#xff0c;来生成适合自己机器人的gazebo环境&#xff0c;顺带着还会生成路径等等&#xff08;没有具体研究&#xff09;&#xff0c;具体参数如下&#xff1a; jackal takes up 2 extra grid squares on each side in addit…

基于新年视角下的城市人流数据分析

2025年新年~~~ 旅游消费似乎又成为城市活力的动力话题。 透过话题看数据&#xff0c;透过数据看结果&#xff0c;无非是从--人流量--到--人留量&#xff0c;能不能留下人&#xff0c;能否因人而产生消费。 基于这个角度&#xff0c;地方政府经营城市的商业模式本质则是为城市…

ORACLE-主备备-Failover

背景 随着业务的不断增涨,至使现有的单节点DG环境的连接已经无法满足当前业务需求,并且随着业务的重要性,同时也要求数据库的高可用性,减少数据库故障对业务的影响。于是规划迁移方案。 迁移方案如下: 因PRIMARY库本地磁盘空间已达到80%决定弃用,搭建高可用2个节点的RAC做…

OpenEuler学习笔记(十):用OpenEuler搭建web服务器

以下是在OpenEuler系统上搭建Web服务器的详细步骤&#xff0c;这里以常见的Nginx为例。 1. 系统更新 在进行任何操作之前&#xff0c;最好先更新系统的软件包&#xff0c;确保系统是最新的状态。 sudo dnf update -y2. 安装Nginx 可以使用OpenEuler的软件包管理器dnf来安装…

【C语言系列】深入理解指针(4)

深入理解指针&#xff08;4&#xff09; 一、回调函数是什么&#xff1f;二、qsort使用举例2.1使用qsort函数排序整型数据2.2使用qsort排序结构数据 三、qsort函数的模拟实现四、总结 一、回调函数是什么&#xff1f; 回调函数就是一个通过函数指针调用的函数。 如果你把函数的…

vim的多文件操作

[rootxxx ~]# vim aa.txt bb.txt cc.txt #多文件操作 next #下一个文件 prev #上一个文件 first #第一个文件 last #最后一个文件 快捷键: ctrlshift^ #当前和上个之间切换 说明&#xff1a;快捷键ctrlshift^&#xff0c…

Salesforce Too Many Email Invocations: 11

在 Salesforce 中&#xff0c;“Too Many Email Invocations: 11” 错误通常表示您的组织在单个事务中超过了 Apex 电子邮件调用的限制。Salesforce 设置这些限制是为了防止滥用并确保公平使用。以下是解决该问题的方法&#xff1a; 理解限制 Salesforce 允许每个事务中最多进…

力扣【347. 前 K 个高频元素】Java题解(堆)

TopK问题&#xff0c;我们直接上堆。 首先遍历一次然后把各个数字的出现频率存放在哈希表中便于后面堆的操作。 因为是出现频率前 k 高&#xff0c;所以用小顶堆&#xff0c;当我们遍历的频率值大于堆顶值时就可以替换堆顶。 代码&#xff1a; class Solution {public int[] …

[NOIP2007]矩阵取数游戏

点我写题 题目描述 帅帅经常跟同学玩一个矩阵取数游戏&#xff1a;对于一个给定的n*m的矩阵&#xff0c;矩阵中的每个元素aij均为非负整数。游戏规则如下&#xff1a; 1.每次取数时须从每行各取走一个元素&#xff0c;共n个。m次后取完矩阵所有元素&#xff1b; 2.每次取走的…