背景: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 中的链接服务器定义
服务名称server 如:MySQLLinkedServer(可自定义),datasrc来自上面步骤的连接名称:mysqlodbc1
EXEC sp_addlinkedserver
@server = 'MySQLLinkedServer',
@srvproduct = '',
@provider = 'MSDASQL',
@datasrc = 'mysqlodbc1'; -- 替换为您配置的 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');