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/profile

export 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.Shell

Welcome 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 exit

sql> 

参数说明

参数描述
-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)
SELECT
    DATEADD('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 h2

Welcome 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.Shell

Welcome 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 exit

sql> 


[root@PostgreSQL bin]# java -cp h2-*.jar org.h2.tools.Shell

Welcome 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 sa

java -cp h2-*.jar org.h2.tools.Shell -url "jdbc:h2:tcp://192.168.202.159:9092/fbase" -user sa -password sa

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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网易云音乐歌名可视化:词云生成与GitHub-Pages部署实践

引言 本文将基于前一篇爬取的网易云音乐数据, 利用Python的wordcloud、matplotlib等库, 对歌名数据进行深入的词云可视化分析. 我们将探索不同random_state对词云布局的影响, 并详细介绍如何将生成的词云图部署到GitHub Pages, 实现数据可视化的在线展示. 介绍了如何从原始数据…

【Unity3D】实现2D小地图效果

目录 一、玩家脚本Player 二、Canvas组件设置 三、小地图相关 四、GameLogicMap脚本修改 基于&#xff1a;【Unity3D】Tilemap俯视角像素游戏案例-CSDN博客 2D玩家添加Dotween移动DOPath效果&#xff0c;移动完成后进行刷新小地图&#xff08;小地图会顺便刷新大地图&…

Langchain+文心一言调用

import osfrom langchain_community.llms import QianfanLLMEndpointos.environ["QIANFAN_AK"] "" os.environ["QIANFAN_SK"] ""llm_wenxin QianfanLLMEndpoint()res llm_wenxin.invoke("中国国庆日是哪一天?") print(…

【stm32学习】STM32F103相关特性

| 名称 | 缩写 | 频率 | 外部连接 | 功能 | 用途 | 特性 | |--------------------|------|----------------|---------------|------------|--------------|----------------| | 外部高速晶体振荡器 | HSE | 4~16MHz …

ModernBERT 为我们带来了哪些启示?

当谷歌在 2018 年推出 BERT 模型时&#xff0c;恐怕没有料到这个 3.4 亿参数的模型会成为自然语言处理领域的奠基之作。 六年后的今天&#xff0c;面对动辄千亿参数的大语言模型浪潮&#xff0c;Answer.AI、LightOn与 HuggingFace 联手打造的 ModernBERT 却选择了一条返璞归真的…

IO进程寒假作业DAY6

请使用互斥锁 和 信号量分别实现5个线程之间的同步 使用互斥锁 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include &…

揭示Baklib企业内容管理系统CMS的核心功能与应用价值

内容概要 企业内容管理系统&#xff08;CMS&#xff09;是指通过一系列工具和技术&#xff0c;帮助企业高效地创建、存储、管理和分发数字内容的系统。这些系统在现代企业运作中发挥着至关重要的作用&#xff0c;尤其是在信息量大、业务流程复杂的环境中。Baklib作为一个突出的…

冯诺依曼系统及操作系统

目录 一.冯诺依曼体系结构 二.操作系统 三.系统调用和库函数概念 一.冯诺依曼体系结构 我们常见的计算机&#xff0c;如笔记本。我们不常见的计算机&#xff0c;如服务器&#xff0c;大部分都遵守冯诺依曼体系 截至目前&#xff0c;我们所认识的计算机&#xff0c;都是由一…

Vue5---

目录 一、学习目标 1.自定义指令 2.插槽 3.综合案例&#xff1a;商品列表 4.路由入门 二、自定义指令 1.指令介绍 2.自定义指令 3.自定义指令的语法 三、自定义指令-指令的值 1.需求 2.语法 3.代码示例 五、插槽-默认插槽 1.作用 2.需求 4.使用插槽的基本语法…

搭建Spring Boot开发环境

JDK&#xff08;1.8及以上版本&#xff09; Apache Maven 3.6.0 修改settings.xml 设置本地仓库位置 <localRepository>D:/repository</localRepository> 设置远程仓库镜像 <mirror><id>alimaven</id><name>aliyun maven</name&…

Visio2021下载与安装教程

这里写目录标题 软件下载软件介绍安装步骤 软件下载 软件名称&#xff1a;Visio2021软件语言&#xff1a;简体中文软件大小&#xff1a;4.28G系统要求&#xff1a;Windows10或更高&#xff0c;64位操作系统硬件要求&#xff1a;CPU2GHz &#xff0c;RAM4G或更高下载链接&#…

AI 浪潮席卷中国年,开启科技新春新纪元

在这博主提前祝大家蛇年快乐呀&#xff01;&#xff01;&#xff01; 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;其影响力已经渗透到社会生活的方方面面。在中国传统节日 —— 春节期间&#xff0c;AI 技术也展现出了巨大的潜力&#xff0c;为中国年带…

【C++高并发服务器WebServer】-1:Linux中父子进程fork创建及关系、GDB多进程调试

本文目录 一、进程创建二、GDB多进程调试 一、进程创建 在Linux中输入man 2 fork可以查看man文档中的fork的相关函数信息。 fork的作用就是创建一个子进程。 通过fork我们可以知道&#xff0c;创建子进程的时候&#xff0c;复制父进程的信息。 我们看看翻译的man文档信息&am…

中科大:LLM检索偏好优化应对RAG知识冲突

&#x1f4d6;标题&#xff1a;RPO: Retrieval Preference Optimization for Robust Retrieval-Augmented Generation &#x1f310;来源&#xff1a;arXiv, 2501.13726 &#x1f31f;摘要 &#x1f538;虽然检索增强生成&#xff08;RAG&#xff09;在利用外部知识方面表现出…

Antd React Form使用Radio嵌套多个Select和Input的处理

使用Antd React Form使用Radio会遇到嵌套多个Select和Input的处理&#xff0c;需要多层嵌套和处理默认事件和冒泡&#xff0c;具体实现过程直接上代码。 实现效果布局如下图 代码 <Formname"basic"form{form}labelWrap{...formItemLayoutSpan(5, 19)}onFinish{on…

【deepseek】deepseek-r1本地部署-第一步:下载LM Studio

要下载LM Studio&#xff0c;可以按照以下步骤进行&#xff1a; 一、访问LM Studio官方网站 打开必应&#xff08;注意&#xff01;百度无法打开官网&#xff09;&#xff0c;输入LM Studio的官方网址&#xff1a;LM Studio - Discover, download, and run local LLMs。进入L…

爬虫基础之爬取某基金网站+数据分析

声明: 本案例仅供学习参考使用&#xff0c;任何不法的活动均与本作者无关 网站:天天基金网(1234567.com.cn) --首批独立基金销售机构-- 东方财富网旗下基金平台! 本案例所需要的模块: 1.requests 2.re(内置) 3.pandas 4.pyecharts 其他均需要 pip install 模块名 爬取步骤: …

Day27-【13003】短文,什么是栈?栈为何用在递归调用中?顺序栈和链式栈是什么?

文章目录 第三章栈和队列总览第一节栈概览栈的定义及其基本操作如何定义栈和栈的操作&#xff1f;合理的出栈序列个数如何计算&#xff1f;栈的两种存储方式及其实现&#xff1f;顺序栈及其实现&#xff0c;还有对应时间复杂度*、清空栈&#xff0c;初始化栈5、栈空&#xff0c…

Linux:多线程 [1]概念理解

char *str "hello bfr"; *str "H"; "hello bfr"这个字符串存储在虚拟地址空间的代码区中&#xff0c;令str指向它之后当要修改*str时&#xff0c;也就是修改代码区中"hello bfr"位置的值&#xff0c;再将它通过页表映射成物理内存时…

electron typescript运行并设置eslint检测

目录 一、初始化package.json 二、安装依赖 1、安装electron 2、安装typescript依赖 3、安装eslint 三、项目结构 四、配置启动项 一、初始化package.json 我的&#xff1a;这里的"main"没太大影响&#xff0c;看后面的步骤。 {"name": "xlo…