当前位置: 首页 > article >正文

【SQL】在 SQL Server 中创建数据源是 MySQL 数据表的视图

背景: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');  

http://www.kler.cn/a/388958.html

相关文章:

  • 如何编译安装LNMP环境
  • 论文阅读:人工智能赋能源网荷储协同互动的应用及展望
  • ZISUOJ 2024算法基础公选课练习二
  • WAL日志
  • 逐行加载 HTML 内容并实时显示效果:使用 wxPython 的实现
  • c++中的变量与常量
  • 绿色未来的关键:先进氢气压力容器技术取得重大进展
  • PHP API为什么要使用多种提交方式
  • Linux的基本指令(一)
  • 数仓工具—Hive语法之窗口函数中的order by
  • mybatisgenerator生成mapper时报错
  • Chapter1:python数据结构与算法
  • 解耦与模块化:鸿蒙平台上的服务注册与查找机制
  • 【Ubuntu】ubuntu 22.04 设置 Xorg 弃用 Wayland
  • webstorm 设置总结
  • Excel和微软小冰的结合应用
  • 7天用Go从零实现分布式缓存GeeCache(学习)(2)
  • MATLAB双坐标轴的figure图中第2个坐标轴怎么调整大小?
  • 数据结构 ——— 查找链式二叉树中值为X的节点
  • RabbitMQ的DLX(Dead-Letter-Exchange 死信交换机,死信交换器,死信邮箱)(重要)