IFIX往Mysql数据库同步数据方法

2023-02-16  本文已影响0人  Y_LY

一、操作环境

Windows server12,ifix数据库,Mysql数据库(5.7)

二、操作步骤

1、在Windows Server12上安装Mysql ODBC(官网下载即可)

由于Windows Server12系统版本限制,Mysql ODBC驱动安装需要限定版本(版本太高系统不支持安装,我这里使用5.1系列的)
image.png
image.png

2、在Windows Server12上添加安装好的Mysql ODBC驱动

image.png image.png image.png
  Data Source Name:定义数据项连接的名字(这里记录好名称,后面SQL触发器要用)
  Server、Port、User、Password、Database:这里配置你要同步数据的目标库连接地址以及SQL命令存放的数据库名

3、在IFIX数据库中配置SCU

(1)添加数据库连接

数据库类型选other

image.png
image.png

(2)配置SQL任务:

IFIX同步时字符串需要使用ascii编码,不能使用常规的utf-8、utf8mb4等

数据库ID:数据同步时执行SQL命令的数据库
SQL命令表:SQL命令存放的表(字段为:sqlname、sqlcmd),这里注意ifix同步时执行命令有长度限制,超长会报错。
错误记录表:目前未发现用处,ifix触发器执行报错会在任务控制器显示
image.png

(3)通过任务控制器查看SQL命令执行情况

image.png

4、在ifix数据库中添加SQL触发器,并在目标库建立同步数据的SQL命令和数据存放表:

(1)增加数据块:SQD(SQL数据)

配置需要同步的数据:逐项添加数据块的标签名及域(其中域会在标签名写完之后自动添加,无需手动录入)

image.png

(2)在目标Mysql数据库中新增数据存放表和同步命令

新建数据表:对字段名称无要求,数据会按照SQD顺序和SQL命令中字段顺序进行填充
SQL命令:一般为insert语句

(2)增加数据块:触发器(DI),配置触发器触发周期

image.png

(3)增加数据块:SQT(SQL触发器)

image.png
下一块:
    绑定需要同步的SQD数据
 SQL定义:
    sql名:mysql数据库中命令表存储sqlname字段内容(会对应获取名字对应的sql语句)
    数据库ID:Windows 系统中添加的Mysql ODBC驱动的名称
  块事件:
    事件标签:IFIX中添加的用作触发器的标签名(将域也写上)

三、遇到的坑:

1、SQL触发器不执行

SQD中标签名写错,在SQL触发器绑定的SQD中存在部分标签名和IFIX数据库中已有数据标签名不一致,导致SQL触发器无法执行,也没有报错。

2、数据同步周期

 根据自己数据情况和数据库承受能力自定义块事件触发器的值变化周期

3、IFIX数据库中标签名命名

在添加SQD是,标签报错:SQTBLK或者NODENAME,一般为标签名和某些指令、关键词等有冲突,在添加时导致添加不成功,尝试更改数据库中标签命名解决
上一篇下一篇

猜你喜欢

热点阅读