Mysql迁移到kingbase(人大金仓)全过程方案(java)

这篇具有很好参考价值的文章主要介绍了Mysql迁移到kingbase(人大金仓)全过程方案(java)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

按项目国产化需求,需要将MySQL数据库迁移成kingbase数据库,后端服务是java

现先用本地创建kingbase-win版服务器进行流程、代码测试

目录

前言:

流程:

一.从官网下载文件

1.下载安装包

 2.下载需要的授权文件

 3.下载数据库连接驱动文件​编辑

 二.安装

 ​编辑

三.数据库迁移

 1.打开数据库开发管理工具软件,连接上目标数据库,创建好迁移的目标数据库

 2.打开数据迁移工具软件,浏览器打开http://localhost:8080

3.创建源数据库和目标数据库

4.创建迁移任务 

 四.代码部分修改并测试

1.配置文件中添加驱动文件

2.成功之后启动项目,测试所有相关功能

踩坑修改点:

Q1:报错; bad SQL grammar []; nested exception is com.kingbase8.util.KSQLException: 错误: 关系 "表名" 不存在

Q1:使用tk.mybatis写SQL的话,并且实体类中id使用了注解@GeneratedValue的话,会爆人大金仓会出现非空异常()


流程:

一.从官网下载文件

人大金仓-成为世界卓越的数据库产品与服务提供商 (kingbase.com.cn)

1.下载安装包

mysql迁移到人大金仓,mysql,mybatis,java

 2.下载需要的授权文件

mysql迁移到人大金仓,mysql,mybatis,java

 3.下载数据库连接驱动文件mysql迁移到人大金仓,mysql,mybatis,java

 二.安装

mysql迁移到人大金仓,mysql,mybatis,java

 mysql迁移到人大金仓,mysql,mybatis,java

选择刚刚下载的授权文件

 mysql迁移到人大金仓,mysql,mybatis,java

安装完成后会出现三个软件

 mysql迁移到人大金仓,mysql,mybatis,java

三.数据库迁移

 1.打开数据库开发管理工具软件,连接上目标数据库,创建好迁移的目标数据库

mysql迁移到人大金仓,mysql,mybatis,java

 2.打开数据迁移工具软件,浏览器打开http://localhost:8080

mysql迁移到人大金仓,mysql,mybatis,java

 mysql迁移到人大金仓,mysql,mybatis,java

3.创建源数据库和目标数据库

mysql迁移到人大金仓,mysql,mybatis,java

mysql迁移到人大金仓,mysql,mybatis,java

4.创建迁移任务 

mysql迁移到人大金仓,mysql,mybatis,java

mysql迁移到人大金仓,mysql,mybatis,java 根据个人需求进行设置,通常直接保存并迁移即可

mysql迁移到人大金仓,mysql,mybatis,java

 mysql迁移到人大金仓,mysql,mybatis,java

 可以通过页面迁移结果来查看迁移结果详情mysql迁移到人大金仓,mysql,mybatis,java

 四.代码部分修改并测试

1.配置文件中添加驱动文件

通过步骤1下载的驱动包来驱动

mysql迁移到人大金仓,mysql,mybatis,java

 打开maven的命令行输入以下命令,其中驱动包的地址及版本自行更换

mvn install:install-file -Dfile=D:\kingbase8-8.6.0.jar -DgroupId=com.kingbase8 -DartifactId=kingbase8 -Dversion=8.6.0 -Dpackaging=jar

配置文件修改配置

spring:
  datasource:
    driver-class-name: com.kingbase8.Driver # 配置驱动程序类
    url: jdbc:kingbase8://localhost22:54321/test
    username: xinke_ebid2
    password: 211aAT5182

导入成功之后,再去pom文件添加,注释掉mysql相关的依赖,最好全局搜索下mysql相关的配置进行更换

    <dependencies>
        <dependency>
            <groupId>com.kingbase8</groupId>
            <artifactId>kingbase8</artifactId>
            <version>8.6.0</version>
        </dependency>
    </dependencies>

2.成功之后启动项目,测试所有相关功能

踩坑修改点:

Q1:报错; bad SQL grammar []; nested exception is com.kingbase8.util.KSQLException: 错误: 关系 "表名" 不存在

D:需要创建与要访问的库名一样的用户名进行访问,例如我要访问的这个库名为test,就需要创建一个名称为test的用户账号,注意:如果设置了大小写敏感,需要查看你的数据库字段名是否有设置大小写

mysql迁移到人大金仓,mysql,mybatis,javamysql迁移到人大金仓,mysql,mybatis,java

Q2:使用tk.mybatis写SQL的话,并且实体类中id使用了注解@GeneratedValue的话,会爆人大金仓会出现非空异常()

D:id上的注解@GeneratedValue会在插入数据时,会自动赋予id null值,mysql支持插入时id为null值,kingbase不支持,所以只要删掉这个注解即可,在数据库迁移的时候会自动设置id为主键,不需要使用该注解

在保存数据时,如果需要获取保存时的这个实体类的返回的id值,需要对tk.mybatis的方法在继承的insertMapper文件进行重写,添加两个新的注解@InsertProvider和@Options即可

public interface InsertDAO<T> extends Marker,
        InsertMapper<T>,
    InsertSelectiveMapper<T>,
    MySqlMapper<T> {
    @Override
    @InsertProvider(type = BaseInsertProvider.class, method = "dynamicSQL")
    @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
    int insert(T record);

    @Override
    @InsertProvider(type = BaseInsertProvider.class, method = "dynamicSQL")
    @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
    int insertList(List<? extends T> recordList);

    @Override
    @InsertProvider(type = BaseInsertProvider.class, method = "dynamicSQL")
    @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
    int insertSelective(T record);
}

Q3: 不能使用sys_user作为表明,会出现字段"XXX"不存在;这是因为表明跟系统表冲突了,可以修改表明或者引用

修改search path
alter database 库名 set search_path to "$user", govengine, public, sys, sys catalog, pg_catalog:文章来源地址https://www.toymoban.com/news/detail-756084.html

到了这里,关于Mysql迁移到kingbase(人大金仓)全过程方案(java)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 人大金仓Kingbase8安装与基本使用

    目录 一、准备工作 一、安装文件 二、禁用防火墙 三、修改内核参数 四、上传文件 二、安装kingbase 三、kingbase的使用 一、kingbase启动与停止 二、数据管理 三、命令行常用命令 操作系统 : CentOS7 x86_64 数据库KingbaseES_V008R006C006B0013_Lin64_install.iso 镜像 安装包官网下载地址 人大

    2023年04月23日
    浏览(26)
  • SpringBoot整合Mybatis+人大金仓(kingbase8)

    陈老老老板🦸 👨‍💻本文专栏:国产数据库-人大金仓(kingbase8)(主要讲一些人大金仓数据库相关的内容) 👨‍💻本文简述:本文讲一下Mybatis框架整合人大金仓数据库,超级详细。 👨‍💻上一篇文章: SpringBoot整合JPA+人大金仓(kingbase8) 👨‍💻有任何问题,都可以

    2023年04月08日
    浏览(27)
  • SpringBoot整合JPA+人大金仓(kingbase8)

    陈老老老板🦸 👨‍💻本文专栏:国产数据库-人大金仓(kingbase8)(主要讲一些人大金仓数据库相关的内容) 👨‍💻本文简述:本文讲一下Jpa框架整合人大金仓数据库,超级详细。 👨‍💻上一篇文章:这是本专栏的第一篇文章,之后会不断进行补充。 👨‍💻有任何问

    2024年01月25日
    浏览(30)
  • Mysql迁移至KingBase(金仓数据库)避坑指南-Java版

            最近因为项目国产化需要,需要将Mysql数据库适配到金仓数据库中,就此给大家分享一下我的采坑过程。如有错误。恳请指正! 官网地址 人大金仓-成为世界卓越的数据库产品与服务提供商 金仓社区 金仓社区-数据库使用者、DBA开发人员、数据化经营者已入驻 安装

    2024年02月10日
    浏览(52)
  • Spring Boot整合JPA和人大金仓(Kingbase8)数据库

    在开发Java应用程序时,使用JPA(Java Persistence API)可以方便地进行数据库操作。而人大金仓(Kingbase8)是一款基于国产化研发的关系型数据库。本文将介绍如何在Spring Boot项目中整合JPA和人大金仓数据库,并提供相关实例来演示使用方式。 在开始之前,请确保已经满足以下条

    2024年02月12日
    浏览(35)
  • 记录一次云原生线上服务数据迁移全过程

    校园 e 站,一群大学生在毕业前夕,为打破信息差而开发的一个校园论坛。一个从零到一全靠一群大学生的满腔热忱而打造的一个前后端分离以小程序为最终展示载体的一个微服务架构体系的 App。并发量的初始定位为 w 级,使用到多级缓存、数据分库等等前沿技术,当然这也

    2024年02月04日
    浏览(43)
  • yum 安装mysql8数据全过程

    mysql8安装方式:(使用官方yum仓库) 1. wget https://dev.mysql.com/get/mysql80-community-release-el7-4.noarch.rpm    安装      yum install mysql80-community-release-el7-4.noarch.rpm 2、生成yum源缓存 每次当我们编写了,都需要生成yum缓存,以免安装错误。  yum makecache   3、检查安装的yum源是否存在   

    2024年02月16日
    浏览(31)
  • 蓝眼开源云盘部署全过程(包含mysql安装)

    环境概述: 系统-Centos7.4 数据库-MySQL8 云盘系统-Tank4.0.1 前提:操作系统已完成安装,有外部网络。 一.安装数据库 cd到合适的目录进行下载安装操作,期间不要切换出去。 登录数据库的时候报错访问被拒绝,密码错误: 解决办法:先编辑配置文件跳过验证,进入数据库后设

    2024年01月25日
    浏览(35)
  • 记一次mysql8 在linux上安装全过程

    参照MYSQL官网官方文档安装 1、mysql官网 mysql官网 2、直接进入文档页 找到安装文档 3、找到自己系统对应的安装文档,选合适的安装方式,我这里使用的是YUM方式 a、开始安装之前需要替换yum仓库 具体步骤如下 b、将下载的文件上传至自己的服务器 如下 c c、执行yum仓库安装命

    2024年02月12日
    浏览(31)
  • MySQL8.0数据库超详细安装教程全过程

    1、官网下载MySQL8.0地址:MySQL :: Download MySQL Installer (Archived Versions) 2、 双击安装包进行安装 3、自定义安装 4、选择MySQL Server8.0   5、创建MYSQL数据存储目录及安装目录 6、配置安装路径及数据存储目录 7、确认继续 8、选择MySQL,下一步 9、开始安装 10、第一次安装需要C++的依赖

    2024年02月08日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包