【SQL】在 SQL Server 中创建一个视图,而该视图的数据源是 MySQL 数据表,实现方法

时间:2024-11-08 07:53:26

背景:Windows系统已安装了mysql5.7和sqlServer数据库,现在需要在sqlServer创建视图或者查询来自mysql的数据,视图的数据来源mysql数据库。下面进行实现在sqlserver实现获取mysql数据表数据构建视图。

1、打开 ODBC 数据源管理器,确认mysql odbc驱动是否安装

在 Windows 搜索框中输入 “ODBC”,然后选择 ODBC 数据源 (64 位) (如果你安装了 64 位的驱动程序)或 ODBC 数据源 (32 位)。
在这里插入图片描述
没有安装mysql的odbc就去下载,https://downloads.mysql.com/archives/c-odbc/可以下载8版本的.msi 文件(例如 mysql-connector-odbc-8.0.x-win10-x64.msi),安装就点下一步,在“选择安装类型”页面上,推荐选择:Complete: 完整安装。安装完成后再打开ODBC,可以看到已安装的出现了:
在这里插入图片描述

2、创建系统DSN

打开ODBC,选择系统DSN,点击添加,选择mysql驱动看编码格式,我选了Unicode的,继续往下
在这里插入图片描述填写已下信息,确保点击test能连接成功,然后点ok,点击应用。连接名称(自定义的,如mysqlodbc1)要记住后面要用到。

在这里插入图片描述

3、在sql server创建链接服务器

打开sqlserver服务连接,新建查询
在这里插入图片描述
执行下面的sql:
1、删除旧的链接服务器(如果存在)

EXEC sp_dropserver 'MySQLLinkedServer', 'droplogins';  

2、 SQL Server 中的链接服务器定义 ,服务名称如:MySQLLinkedServer(可自定义)

EXEC sp_addlinkedserver   
   @server = 'MySQLLinkedServer',   
   @srvproduct = '',   
   @provider = 'MSDASQL',   
   @datasrc = 'MySQLDSN';  -- 替换为您配置的 DSN 名称 ,上面步骤的**连接名称** 如:mysqlodbc1

3、添加登录映射

EXEC sp_addlinkedsrvlogin   
   @rmtsrvname = 'MySQLLinkedServer',   
   @useself = 'false',   
   @rmtuser = 'your_mysql_username',   --用户名
   @rmtpassword = 'your_mysql_password';  -- 替换为您的 MySQL 用户名和密码 

4、在sqlserver查询来自mysql的数据,或者创建视图

服务名称:MySQLLinkedServer
关键语法:OPENQUERY
mysql数据库:your_database
数据来源表:your_table

SELECT *   
FROM OPENQUERY(MySQLLinkedServer, 'SELECT * FROM your_database.your_table');