前提条件
假设已经安装好了sql server 和 mysql数据库所需的东西。现在仅需要实现同步即可。
实现方法
先下载mysqlconnector,下载完成双击安装。
打开sqlserver机器上的“控制面板”,找到“管理工具”–“设置数据源(ODBC)”,如果不好找,可以在搜索框中输入“ODBC”找到。 打开“ODBC数据源管理器”,点击“添加”。
选择“MySQL ODBC 5.3 ANSI Driver”,点击“完成”。
填写Data Source Name和mysql数据库的IP, Port, User, Password, Database,点击“Test”,可以测试是否连通。
点击“OK”,“用户数据源”列表中就增加了一记录, 名字就是刚刚设置的DataSourceName,如第二个图所示。
代码创建链接服务器
创建链接服务器 exec sp_addlinkedserver @server='mysql128', --ODBC里面data source name @srvproduct='mysql', --自己随便 @provider='MSDASQL', --固定这个 @datasrc=NULL, @location=NULL, @provstr='DRIVER={MySQL ODBC 5.3 ANSI Driver};SERVER=192.168.150.128;DATABASE=test;UID=test;PORT=3306', @catalog = NULL go
创建登录账号 exec sp_addlinkedsrvlogin @rmtsrvname='mysql128', --ODBC里面的Data Source Name @useself='false', @rmtuser='centos', --mysql账号 @rmtpassword='123456'; --mysql密码 go
建立远程访问连接 USE [master]GOEXEC master.dbo.sp_serveroption @server=N'mysql128', @optname=N'rpc out', @optvalue=N'TRUE'GOEXEC master.dbo.sp_serveroption @server=N'mysql128', @optname=N'remote proc transaction promotion', @optvalue=N'false'GO
建立LOOPBACK 服务器链接 EXEC sp_addlinkedserver @server=N'loopback',@srvproduct=N' ', @provider=N'SQLNCLI',@datasrc=@@SERVERNAME GO
设置 USE [master] GO EXEC master.dbo.sp_serveroption @server=N'loopback',@optname=N'rpc out',@optvalue=N'TRUE' GO EXEC master.dbo.sp_serveroption @server=N'loopback',@optname=N'remote proc transaction promotion',@optvalue=N'false' GO
测试: select * from openquery(mysql128,'SELECT * FROM test;') GO
通过存储过程和触发器来实现同步,一般要包括insert\update\delete三个触发器,此处省略。 一定要注意两个库结构!