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,mybatis,java

 2.下载需要的授权文件

人大金仓迁移数据库,mysql,mybatis,java

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

 二.安装

人大金仓迁移数据库,mysql,mybatis,java

 人大金仓迁移数据库,mysql,mybatis,java

选择刚刚下载的授权文件

 人大金仓迁移数据库,mysql,mybatis,java

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

 人大金仓迁移数据库,mysql,mybatis,java

三.数据库迁移

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

人大金仓迁移数据库,mysql,mybatis,java

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

人大金仓迁移数据库,mysql,mybatis,java

 人大金仓迁移数据库,mysql,mybatis,java

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

人大金仓迁移数据库,mysql,mybatis,java

人大金仓迁移数据库,mysql,mybatis,java

4.创建迁移任务 

人大金仓迁移数据库,mysql,mybatis,java

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

人大金仓迁移数据库,mysql,mybatis,java

 人大金仓迁移数据库,mysql,mybatis,java

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

 四.代码部分修改并测试

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

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

人大金仓迁移数据库,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,mybatis,java人大金仓迁移数据库,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-598483.html

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

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

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

相关文章

  • 华为手机备份全过程(保姆级问题解决方案)

    我的手机是荣耀 20,虽然不是华为,但系统还是鸿蒙的系统(毕竟那阵荣耀还是华为的子公司)。最近手机频繁犯病,我怕出事就赶紧去备份了(其实就算没犯病,也应该保持备份的习惯,以备不时之需)。 经了解后,发现很多人备份中的qq、微信内容不饿能正常恢复,华为

    2024年01月22日
    浏览(48)
  • 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)
  • 【基于Ubuntu20.04的Autoware.universe安装过程】方案三:Docker | 详细记录 | 全过程图文 by.Akaxi

    目录 一、Autoware.universe背景 二、安装说明 三、安装git 四、克隆autoware 五、安装cuda 六、安装Docker软件 七、安装Nvidia Container Toolkit 八、安装Rocker 九、拷贝Autoware的Docker镜像 十、创建autoware_map文件夹 十一、启动docker 十二、源码拷贝 十三、安装依赖 十四、编译Autoware.universe 十

    2024年04月10日
    浏览(43)
  • 【基于Ubuntu20.04的Autoware.universe安装过程】方案二:双系统 | 详细记录 | 全过程图文 by.Akaxi

    目录 一、Autoware.universe背景 Part-1:安装双系统教程 二、查看Windows引导方式 三、制作安装盘 四、设置电脑配置 1.关闭bitlocker 2.压缩硬盘分区 3.关闭Secure Boot 4.关闭intel RST 5.BIOS设置U盘引导 五、安装Ubuntu20.04 1.ventoy引导 2.安装配置 3.安装类型 4.完成安装 Part-2:在Ubuntu20.04上安装

    2024年04月11日
    浏览(49)
  • 2020年华数杯数学建模B题工业零件切割优化方案设计求解全过程文档及程序

    原题再现:    在大型工业产品中,如机床、轮船、飞机,常常需要很多的小零件,如螺钉、螺帽、螺栓、活塞等。在零件的生产过程中,第一步是需要依照零件产品尺寸从原材料中截取初级产品,这是零件制造的第一道工序。在这道工序中,不同的截取方案具有不同的材

    2024年02月05日
    浏览(43)
  • 在CentOS上用yum方式安装MySQL8真实全过程记录(顺利版本)

    此文参考我前面的文章《在CentOS上用yum方式安装MySQL8过程记录》,之前比较曲折,现在再安装一台mysql。 因为之前很多坑已经走过,加上这台Linux之前没安装过MYSQL,所以整个过程算是非常顺利。 安装环境:centos7 mysql版本:8.0.35 (为方便理解,以下为完整过程 ) 然后直接使

    2024年02月07日
    浏览(43)
  • Linux之CentOS_7.9卸载MySQL_5.7全过程实操手册

    前言:接以上,前面记录了Windows和Linux环境的MySQL部署,那我们既然都部署完成验证测试那就来个卸载记录吧,便于闭环收尾。 环境: 1、关闭mysql服务 2、使用 rpm 命令查看已安装的安装包,如有直接rpm -ev卸载 3、查找涉及到mysql的文件及路径 4、删除mysql用户及用户组(如需

    2024年02月13日
    浏览(54)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包