首页 > > > sqlserver 跨服务器联查 mysql
昨天和同事聊起来mysql和sqlserver 互通的事儿。在网上翻阅各种资料 ,都是各种各样零星的片段(可能这些都是大佬,没必要写的那么详细),小白的我一脸emo啊。
遂,测试完成后,整理了一下组织过程资产。
硬件:虚拟机,32G内存
软件:winserver2019 sqlserver2016
下载地址:https://dev.mysql.com/downloads/file/?id=509492
点击安装后却提示 需要安装visualstudio

Visual Studio Community 2019 for Windows x64 下载地址:
https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=Community&rel=16




此处我选择的是 Visual Studio扩展开发

一直等到进度条走完 即安装完成。




mysql-connector-odbc-8.0.28-winx64.msi 安装完成。
在控制面板内 找到管理工具 打开后 找到odbc 我选择的是 64bit

也可以直接在检索框内搜索ODBC

点击添加用户DSN

选择刚刚安装好的 MySql ODBC 8.0Unicode Driver

备注:
说明一下“MYSQL ODBC 8.0 ANSI Driver”和“MySQL ODBC 8.0 Unicode Driver”的区别:
①MySQL ODBC 8.0 ANSI Driver 只针对有限的字符集的范围;
②MySQL ODBC 8.0 Unicode Driver 提供了更多字符集的支持,也就是提供了多语言的支持。

备注:
Data Source Name: 数据源名称,自定义
Description:关于此数据源的描述,主要功能等,可不填写
TCP/IP Server:服务器名称,可以是机器名,也可以是IP地址;若是本地可填写“localhost”
Port:MySQL服务的端口号,默认是3306,也可在安装MySQL时自己设定
User:用户名,默认是root,也可在安装MySQL时自己设定
Password:密码
Database:数据库名称




数据源配置完成。
打开Microsoft SQL Server管理器,查看访问接口是否已经存在MSDASQL

备注:
MSDASQL 基于 ODBC,SQLOLEDB 是本机驱动程序,它们是用于连接 sql server 的不同方式。
ADO 和 OLE DB 提供程序
与 OLE DB 通信的 ADO 客户端需要 OLE DB 提供程序,这是一个使用 OLE DB 接口和方法来查询 SQL 数据源的动态链接库。对于 Microsoft® SQL Server™,可以使用两种类型的 OLE DB 提供程序:
Microsoft OLE DB Provider for SQL Server (SQLOLEDB),它直接将 OLE DB 接口和方法映射到 SQL Server 数据源。
Microsoft OLE DB Provider for ODBC (MSDASQL),它将 OLE DB 接口和方法映射到 ODBC API。 OLE DB 使用者通过现有的 SQL Server ODBC 驱动程序连接到 SQL Server 数据库。
我们建议使用随 SQL Server 提供的 SQLOLEDB 作为您的 OLE DB 提供程序。 SQLOLEDB 在 SQL Server 数据源上映射 OLE DB 接口和方法,而不使用 ODBC API 或 SQL Server ODBC 驱动程序作为中介。 ADO 介绍性 Visual Basic 示例应用程序(在 ADO 对象模型主题中的大多数代码示例中使用)使用 SQLOLEDB。
SQLOLEDB 和 MSDASQL 之间存在差异。这两个提供程序支持不同的连接属性,而 SQLOLEDB 不支持使用 ODBC DSN 连接。
EXEC master.dbo.sp_addlinkedserver
@server = N'Mysql_R',
@srvproduct=N'MySQL',
@provider=N'MSDASQL',
@datasrc=N'mysql-test',
@provstr=N'DRIVER={MySQL ODBC 5.2 UNICODE Driver};SERVER=192.168.1.225;Port=3306;DATABASE=sjcx;UID=root;PASSWORD=7758521;OPTION=3;'
此时查看数据库连接服务器,可以点击测试连接 测试是否连接成功。


select a.id,mzh,yzmc
from [mysql-test].[sjcx]..[t1_log] a
join yjwzx_infos b on a.zxid=b.id
where a.id='113'

测试可用 。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69946831/viewspace-3164393/ ,如需转载,请注明出处,否则将追究法律责任。