媒介
随着S3赛季的开启,信创化之路愈发加紧。国内出现了许多基于社区版mysql或者pgsql的优化版本的国产数据库。本文提到的翰高数据库基于pgsql实现(如存争议,可删除)。
引用某度百科的原文简介:
瀚高数据库引进了国际上最先进的开源数据库PostgreSQL内核技能,在此PostgreSQL社区版之上做了一系列的研发和优化。瀚高科技是中国最早致力于PostgreSQL数据库商业推广利用的专业化公司,在数据库方面有着丰富的开发、管理和培训履历。瀚高数据平台办理方案既可以为用户节省大量的数据库利用本钱,又可以为用户提供专业化的数据服务,从而团体提高用户IT部分的数据库利用程度。
资源分享
迁徙工具与可视化客户端分享,见文末。
工程对接(SpringBoot+Mybatis为例)
(1) pom依靠
- <!-- https://mvnrepository.com/artifact/com.highgo/HgdbJdbc -->
- <dependency>
- <groupId>com.highgo</groupId>
- <artifactId>HgdbJdbc</artifactId>
- <version>6.2.4</version>
- </dependency>
复制代码 (2) 数据库jdbc毗连
- # 数据源配置
- spring:
- datasource:
- type: com.alibaba.druid.pool.DruidDataSource
- driverClassName: com.highgo.jdbc.Driver
- druid:
- # 主库数据源
- master:
- url: jdbc:highgo://实际ip:实际端口号/库名(这里相当于名称空间)?currentSchema=约束名(mysql的数据库名),public&stringtype=unspecified&serverTimezone=Asia/Shanghai
- username: 用户名
- password: 密码
- # 从库数据源
- slave:
- # 从数据源开关/默认关闭
- enabled: false
- url:
- username:
- password:
- # 初始连接数
- initialSize: 5
- # 最小连接池数量
- minIdle: 10
- # 最大连接池数量
- maxActive: 20
- # 配置获取连接等待超时的时间
- maxWait: 60000
- # 配置连接超时时间
- connectTimeout: 30000
- # 配置网络超时时间
- socketTimeout: 60000
- # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
- timeBetweenEvictionRunsMillis: 60000
- # 配置一个连接在池中最小生存的时间,单位是毫秒
- minEvictableIdleTimeMillis: 300000
- # 配置一个连接在池中最大生存的时间,单位是毫秒
- maxEvictableIdleTimeMillis: 900000
- # 配置检测连接是否有效
- validationQuery: SELECT 1
- testWhileIdle: false
- testOnBorrow: false
- testOnReturn: false
- webStatFilter:
- enabled: true
- statViewServlet:
- enabled: true
- # 设置白名单,不填则允许所有访问
- allow:
- url-pattern: /druid/*
- # 控制台管理用户名和密码
- login-username: 控制台用户名
- login-password: 密码
- filter:
- stat:
- enabled: true
- # 慢SQL记录
- log-slow-sql: true
- slow-sql-millis: 1000
- merge-sql: true
- wall:
- config:
- multi-statement-allow: true
复制代码 数据库迁徙
(1) 从mysql 迁徙
工具: migration-4.1.4-2024-08-09(翰高提供,侵删)
解压zip后,找到migration/bin 点击start.bat或者对应cpu位数的exe步调。
主界面
新建组
在组中新建翰高和mysql的毗连(其他也可以)
新建迁徙任务
选择源和目标
选择范围,下一步下一步即可。
迁徙过程中,工具给我们做了许多兼容。如果你的翰高数据库开启了mysql模式,而且执行这个工具的话,他会自动创建sequence,兼容mysql自增id的实现。
可视化工具毗连数据库
1. 企业版安全版
这个版本好像默认开启了SM3(国密3)的认证,因为我对接的版本是dba提供的,具体没有看到配置。
如果开启国密版本的认证了,那么navicat, sqlyog等工具默认是不支持的。
会报错: authentication method 13 not supported
网上听说有sm3的dll插件,可以给到navicat,至少我没找到免费的下载毗连。
这种情况,请利用dbeaver或者datagrip,这俩工具是支持自定义jar驱动的。
higo驱动中有sm3的痕迹,具体源码没有debug
那么就偶尔机了
第一种方式 dbeaver 自定义驱动毗连翰高数据库。
(1) 打开dbeaver,数据库-驱动管理器
(2) 驱动管理器-新建
(3) 填写毗连模板
毗连瀚高数据库:highgo
类名:com.highgo.jdbc.Driver
URL :jdbc:highgo://{host}[:{port}]/[{database}]
下载而且加载驱动
https://mavenlibs.com/jar/file/com.highgo/HgdbJdbc
创建完之后,其他和新建正常的sql毗连没有多大区别。
毗连成功后,dbeaver的结构,会在外部库名(可以理解为名称空间)的基础上,另有一个"schema"名称(相当于mysql的数据库名称),然后才是表名,对于熟悉oracle或者pgsql的小同伴可能友好,但对于利用mysql和其他数据库的小同伴有点别扭。
第二种方式,直接利用翰高的 hgdbdeveloper-6.1.0-2024-04-22.zip(翰高提供,侵删)
新建毗连(注意,这里勾选是否为安全版,应该和利用利用sm3加密链接库有关系)
毗连后的截图,其他和利用dbever一类的数据库类似。
2. 未开启国密版本。
看成pgsql直接毗连即可,有其他博客表明,可以用navicat一类的工具直接毗连。
Mysql函数或语法兼容
函数直接创建出来就好
1. ifnull
- create function ifnull(value anyelement, null_value anyelement) RETURNS anyelement AS
- $$
- BEGIN
- if value is null then return null_value;
- else return value;
- end if;
- END;
- $$
- LANGUAGE plpgsql;
复制代码 2. find_in_set
- CREATE OR REPLACE FUNCTION find_in_set(value text, col_name text)
- RETURNS boolean AS $$
- BEGIN
- RETURN value = ANY(string_to_array(col_name, ','));
- END;
- $$ LANGUAGE plpgsql;
复制代码 语法兼容
(1)pgsql有较强的语法验证:
operator does not exist: character = integer 办理方案,根据对应的报错提示去找字符和数字等的转换支持(mysql对比比较不敏感)
检察当前采用的模式:
alter system set compatible_db = 'mysql';
select pg_reload_conf();
(2) 自增id
举例子:
创建序列
CREATE SEQUENCE my_table_id_seq;
使表关联对应序列
CREATE TABLE my_table (
id INTEGER PRIMARY KEY DEFAULT NEXTVAL('my_table_id_seq'),
name VARCHAR(100),
data TEXT
);
可选,修改序列起点。(一般不直接修改,如果多次执行迁徙工具的迁徙,sequence并没有触发自增,最好是删除sequence重建)。
alter sequence s_seq restart with 2
(3) mybatis字段兼容
PSQLException: ERROR: could not determine data type of parameter $1
like concat('%', #{deptName}::text, '%')
资源链接(免责侵删):
migration-4.1.......等2个文件官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘123云盘为您提供migration-4.1.......等2个文件最新版正式版官方版绿色版下载,migration-4.1.......等2个文件安卓版手机版apk免费下载安装到手机,支持电脑端一键快捷安装https://www.123865.com/s/07O0Vv-2V47A?提取码:mT26
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |