sqlserver 数据实时同步到mysql

作者:哈哈小脸 | 创建时间: 2023-07-18
通过mysqlconnector,将sqlserver 数据实时同步到mysql...
sqlserver 数据实时同步到mysql

前提条件

假设已经安装好了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三个触发器,此处省略。 一定要注意两个库结构!

点击展开全文

更多推荐