连接配置
(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...
(3): 选择 MySQL ODBC 5.3 Unicode Driver-> Finish(完成)
(4): 在弹出的新窗口中,配置相关信息:
- Data Source Name: 数据源名称(在SQLServer配置的时候要用到此名称)
- Decription: 描述信息
- Server: MySQL数据库所在的服务器的IP
- Port: MySQL的端口,默认的是3306.
- User: 连接MySQL的User(在mysql上授权的账号,同时给予相应权限)
- Password: User的密码
- Database: 选择链接的数据库
(5): 点击Test,如果以上步骤配置正确会弹出成功提示信息:Connection Successful
(6): 打开SSMS登录到SQLServer-> Server Objects-> Linked Servers-> 右键:New Linked Server...
(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
其他信息可不填写
(8): 点击Security, 如下图选择:Be made using the login's current security context
注: 默认的情况是选择第二个,但是这样会出现下面错误异常中的的Q2错误。
(9): 以上配置后,点击OK,如下图会在Linked Servers中出现连接标识,点击Linked能看到MySQL中的各表视图等Object。
在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)步的情况。变更为第三个选项后问题即可解决。