最近做项目,需要对两个数据库进行同步操作,所以采用在Server SQL中建立链接服务器方式实现。
链接服务器,可以直接访问/操作其他服务器上的数据库表。
1、连接SQL Server链接服务器
EXEC sp_addlinkedserver
@server='Other',--被访问的服务器别名
@srvproduct='',
@provider='SQLOLEDB', ----固定值
@datasrc='192.168.4.69' --要访问的服务器
EXEC sp_addlinkedsrvlogin
'Other', --被访问的服务器别名(与上面的@server一样)
'false',NULL,'sa', --帐号
'' --密码
这样就可以直接访问 192.168.4.69服务器上的数据库(sa有权限的数据库)
例如: SELECT * FROM Other.Test.dbo.User;
(SELECT * FROM 服务器别名.数据库.dbo.表名)
2、链接mysql数据库
安装mysqlconnector/ODBC
1)注意mysql版本(非操作系统版本)为32bit或64bit,选择相应安装包,版本问题可能造成错误。
2)若出现以下错误,请安装相对应版本的Microsoft Visual C++ 2010 Redistributable Package。
建立odbc数据源
步骤:1)若本地操作系统和mysql均为32bit或64bit,操作如下:
控制面板—>管理工具—>数据源ODBC—>系统DSN
若操作系统为64bit,mysql为32位,操作如下:
若在控制面板—>管理工具—>数据源ODBC—>系统DSN—> 【添加】中找不到MYSQLDriver,则在C:\Windows\SysWOW64 路径下找到odbcad32.exe文件,双击,选择系统DSN。
2)添加数据源
配置项说明:
Data Source Name:数据源名称(建立链接数据库需要该参数)
Description:简述
TCP/IP Server 远程数据库IP
User:远程数据库用户名
Password:远程数据库用户密码
DataBase: 数据库名
建立链接服务器:
EXEC sp_addlinkedserver
@server='JIRA',--被访问的服务器别名
@srvproduct='MySQL',
@provider='MSDASQL', --链接MYSQL参数(固定值)
@datasrc='JIRA' --要访问的数据源名称(与配置的ODBC数据源名称一致)
EXEC sp_addlinkedsrvlogin
'JIRA', --被访问的服务器别名(同上)
'false',
'MES', --本地数据库用户名
'root', --远程数据库帐号
'123456' --远程数据库密码
验证数据库是否链接成功
select * from openquery(JIRA,'SELECT * FROM project;')
若出现“mysql ODBC 驱动程序和应用程序之间的体系结构不匹配”的错误提示,则为ODBC驱动版本与MYSQL版本不一致
3、链接Oracle数据库