Appearance
瀚高数据库部署
一、说明
- 瀚高数据库需要购买。
- 先给对方提供服务器和CPU型号,对方申请【商务介质】,等待工程师对接。
- 工程师提供技术支持,随时可提问。
二、安装服务器数据库(对方工程师远程安装)
- 收到对方发来的安装包,拷贝到麒麟系统服务器上。
- 向日葵,连接自己的电脑,对方安装。
三、数据库迁移
3.0 迁移准备
注意:本地网络必须能正常连接到瀚高数据库
有2种方式:
- 本机和服务器网络 互通,可以直接连接到上文中安装的服务器端的瀚高数据库;
- 本机和服务器网络 不互通,则需要在本地安装瀚高数据库(可联系对方工程师远程安装到本机)。
- 下载对方发来的两个迁移工具。
- hgdbdeveloper:连接工具,用于连接到本地或远程的瀚高数据库。
- migration:迁移工具,用于mysql数据库迁移到瀚高数据库。
3.1 连接瀚高数据库
- 解压 hgdbdeveloper-6.1.0-2024-01-16.zip
- 打开 hgdbdeveloper 工具,连接到瀚高数据库,如下图所示
上图中连接的是本地数据库(因为我本地网络连接不到服务器,所以选择在本地安装了瀚高数据库服务端)。
若能连接到服务器,可直接连接到服务器端的瀚高数据库。
连接成功后,创建需要的数据库模式(对应mysql的数据库名)
3.2 数据库迁移
- 解压 migration-4.1.4-2023-11-23.zip
- 打开 migration 工具
- 点击帮助菜单,可查看使用说明文档,如下图所示
迁移步骤:
- 新建组,随便起名。
- 数据库连接,新建 源库 MySQL 连接。
- 新建 目标库 HGDB 连接。
- 新建数据库迁移任务,选择源库和目标库,点击下一步。
- 选择mysql的库,和瀚高数据库新建的模式名,点击下一步。
- 选择需要迁移的表,点击下一步。
- 选择数据类型的匹配:
- 其中 datetime 类型,改为 TIMESTAMP 类型(默认是 TIMESTAMPTZ 类型)。
- 点击确定按钮,迁移任务创建完成。
- 在左侧“数据库迁移任务”的任务列表中,找到刚刚创建的任务,右键“开始迁移”。
- 右侧显示迁移进度,等待迁移完成。
- 迁移完成后,右侧显示迁移日志(迁移日志在迁移结果中可以重复打开)。
- 若出现错误,可点击“红色的错误数字”按钮,查看错误详情。
- 若无错误,连接瀚高数据库,查看迁移后的数据库。
四、本地项目改造
- 4.1 在module模块中,增加瀚高的pom依赖
- 删除 MySQL 数据连接驱动(mysql-connector-java)的依赖,如下图所示。
- 添加瀚高数据库数据连接驱动(HgdbJdbc)的依赖。
xml
<!-- 瀚高数据库驱动 -->
<dependency>
<groupId>com.highgo</groupId>
<artifactId>HgdbJdbc</artifactId>
<version>6.2.4</version>
</dependency>
- 4.2 修改数据库连接配置
- application.yml文件中,修改数据库连接信息。
- 把原来的 mysql 连接信息,改为瀚高数据库连接信息。
yaml
spring:
# highgo 数据库配置
datasource:
driver-class-name: com.highgo.jdbc.Driver
url: jdbc:highgo://127.0.0.1:5866/dbname?currentSchema=db_real_name
username: dbname
password: 123456
说明
- 瀚高数据库的默认端口号为5866
- 上面代码中 dbname 是瀚高数据库的数据库名,但不对应mysql的数据库名。
- db_real_name 才是mysql的数据库名,在瀚高数据库中是模式(schema),如下图所示。
- 用户名和密码,是瀚高数据库的角色和密码,如下图所示。
- 4.3 修改项目中SQL语句
注意:
- 连接瀚高数据库后,启动项目并测试,遇到报错的情况,每个去单独处理。
- 以下遇到的已知问题,必须修改。
1. Mybatis Plus 中 Between And 查询,传递时间参数问题。
- 使用 mysql 数据库时,可以传递时间“字符串”参数;
- 改成瀚高数据库后,必须传递java.sql.Timestamp类型参数,如下图所示:
2. Mybatis Plus 中使用 eq 方法时,若参数类型为 Integer 类型,不能传递 String 类型参数。
- 使用 mysql 数据库时,可以传递 String 类型参数;
- 改成瀚高数据库后,必须传递 Integer 类型参数,如下图所示:
3. Mybatis 原生sql语句中,between and 日期类型,必须格式化。
- 使用 mysql 数据库时,可以直接传递日期字符串参数;
- 改成瀚高数据库后,必须格式化日期字符串参数,如下图所示:
4. GROUP BY 语句问题
- 瀚高数据库默认的GROUP BY语句,有个问题:
- 多字段使用GROUP BY语句时,前面的列必须全部加入分组字段,导致部分mysql分组语句,不能正常使用,如下图所示:
解决方法:
- 使用瀚高数据库开发工具,执行以下语句(执行完成重新连接数据库,测试是否解决)。
sql
-----新建查询,执行即可,如下图所示
alter system set compatible_db to mysql;
select pg_reload_conf();
注意:
- 由于本文档安装了本地和服务器两个瀚高数据库,因此需要分别执行上述语句。
- 若出现其他问题,请联系对方工程师。