【SQL Server】使用 LinkedServer 进行远程链接 MySql 数据库

举报
bluetata 发表于 2023/04/14 15:18:31 2023/04/14
【摘要】 使用SQL Server 远程链接MySql数据库(LinkedServer) 达到不同数据库查询

连接配置

(1): 在SQLServer服务器上安装MySQL ODBC的驱动(如果SQLServer和MySQL在同一台服务器跳过此步)
下载地址:https://dev.mysql.com/downloads/connector/odbc/

(2):Control panel(控制面板)-> Administrative Tools(管理工具)-> Data Sources (ODBC)(ODBC数据源)-> System DSN(系统DSN)-> Add…

image.png

(3): 选择 MySQL ODBC 5.3 Unicode Driver-> Finish(完成)

image.png

(4): 在弹出的新窗口中,配置相关信息:

  • Data Source Name: 数据源名称(在SQLServer配置的时候要用到此名称)
  • Decription: 描述信息
  • Server: MySQL数据库所在的服务器的IP
  • Port: MySQL的端口,默认的是3306.
  • User: 连接MySQL的User(在mysql上授权的账号,同时给予相应权限)
  • Password: User的密码
  • Database: 选择链接的数据库

image.png

(5): 点击Test,如果以上步骤配置正确会弹出成功提示信息:Connection Successful

(6): 打开SSMS登录到SQLServer-> Server Objects-> Linked Servers-> 右键:New Linked Server…

image.png

(7): 在新窗口点击:General中配置如下信息:

Linked Server: Linked Server名,可取任意名,配置好后会在SQLServer-> Server Objects->Linked Servers中出现此配置名。
Provider: 选择 Microsoft OLE DB Provider for ODBC Driver
Data Source: 填写在(4)步配置的Data Source Name
其他信息可不填写

image.png

(8): 点击Security, 如下图选择:Be made using the login’s current security context
注: 默认的情况是选择第二个,但是这样会出现下面错误异常中的的Q2错误。

image.png

(9): 以上配置后,点击OK,如下图会在Linked Servers中出现连接标识,点击Linked能看到MySQL中的各表视图等Object。

image.png

在Linked Server下使用SQL

查: select * from OPENQUERY(TESTING,'select * from t_testing');
增: insert OPENQUERY(TESTING,'select id, Name, ProductID, Count from t_testing') values (1111, 'Mr.Wang', 11, 22);
删: delete OPENQUERY(TESTING,'select * from t_testing where id = 1001');
改: update OPENQUERY(TESTING,'select * from t_testing where name = "Mz"') set Name = 'Mr.Mz';

错误异常&解决办法

Q1\错误消息: Named Pipes Provider: Could not open a connection to SQL Server [53]. (Microsoft SQL Server, Error: 53) / 命名管道提供程序: 无法打开与SQL Server 的连接[53].
A1\解决办法: 1. 默认SQL Server 不允许远程连接造成的,需要关闭服务器防火墙,变更动态端口号为:1433,且login状态变更为enable状态即可,详细参照:http://bbs.csdn.net/topics/392177225
       2. ODBC驱动不匹配造成,比如在上面配置连接中的第(7)步骤中,设置的Provider如果错误,既会出现连接[53]错误。

Q2\错误消息: The OLE DB provider “MSDASQL” for linked server “TESTING” reported an error. The provider did not give any information about the error.
A2\解决办法: 在创建Linked Server的时候,在Security中如果选择了第二项就会出现这个错误,既配置连接中的第(8)步的情况。变更为第三个选项后问题即可解决。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。