MySql教程

SSIS向MySQL目标(Destination)写数据--Step By Step

本文主要是介绍SSIS向MySQL目标(Destination)写数据--Step By Step,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

前言(废话)

最近的工作中涉及到SQLSERVER向MySQL的数据迁移同步,团队中理所当然准备用开发C#微服务接口的方式实现,我觉得这个路子曲折了,推荐SSIS的方式并自告奋勇接下了这个活.不过以前都是sqlserver间互相传数据,还没往MySQL写过数据,没想到处理的过程遇到很多问题,网络上搜索SSIS往MySQL导数据要么说不确定是否可行,要么就说不可行,搞得我都一度怀疑是不是往MySQL写数据本就不可行.为了交付工作,只好放弃了SSIS方案,用SqlServer的"生成脚本"连带整个表的数据批量导出脚本,然后放到MySQL中修改为MySQL的语法再批量执行,算是曲线完成了工作.过了几天因为要做成自动同步,于是又搬出来研究了一番.所幸一堆的踩坑和填坑后,总算解决了.

主要分以下几步实现:

1. 创建ODBC 连接

  • 从MySQL官方网站下载安装ODBC连接驱动Connector/ODBC 8.0
    注意是选择32位版本
    image

  • 创建DSN ODBC数据源
    访问到控制面板,查看方式选择小图标
    image
    依次选择 管理工具/ODBC Data Source(32-bit)/系统DSN/添加
    image
    image
    image
    image

  • 创建ODBC连接
    ①在连接管理器中右键点击"新建连接";
    ②选择ODBC;
    ③在新建界面选择"使用用户名或系统数据源名称",下拉项中选择前面维护的DSN,输入用户名,密码;
    ④设置属性RetainSameConnection=True.
    image

image
image
image

2. 创建ODBC Destination

数据源组件选择普通的"OLE DB源"组件即可.目标组件选择比较多,"OLE DB Destination","ADO NET Destination","ODBC Destination",搜了些资料貌似"ADO NET Destination"是可以的,但我一番踩坑没试出来,我的验证只有"ODBC Destination"是可行的.
image

3. 创建执行SQL任务

执行时会提示语法错误,需要设置一下Mysql的sql_model,创建"执行SQL任务"组件,执行以下语句即可:
SET sql_mode ='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,ANSI_QUOTES'
注意连接和"ODBC目标"的连接保持一致.
image

参考:

使用SSIS更新MYSQL中的记录
Writing to a MySQL database from SSIS
Connecting to MySQL from SSIS
Creating a Destination with the Script Component

这篇关于SSIS向MySQL目标(Destination)写数据--Step By Step的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!