首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用C#同步MSSQL和mysql数据库

使用C#同步MSSQL和mysql数据库
EN

Stack Overflow用户
提问于 2014-07-09 15:18:59
回答 2查看 361关注 0票数 4

我在两台服务器上有两个数据库。一个是MSSQL,另一个是mysql。在两个数据库中有两个相似的表。如何在更新MSSQL one时自动更新mysql one?

EN

回答 2

Stack Overflow用户

发布于 2014-07-09 15:37:34

你可以使用SQL Server CLR integration,创建一个触发器来更新MySQL。这里有一个Sync Data from SQL Server to MySQL example on Code Project作为起点。

票数 2
EN

Stack Overflow用户

发布于 2014-07-09 15:45:11

或者,您也可以创建Linked Server

sysadmin组的成员身份运行此脚本:

代码语言:javascript
复制
USE [master]
GO
EXEC master.dbo.sp_addlinkedserver 
    @server = N'MYSQL'
    , @srvproduct=N'MySQL'
    , @provider=N'MSDASQL'
    , @datasrc=N'MySQL'
    , @provstr=N'DRIVER={MySQL ODBC 5.1 Driver};SERVER=Server;PORT=3306;DATABASE=DBName; USER=user;PASSWORD=password;OPTION=3;'
    , @catalog=N'DatabaseName'

GO
EXEC master.dbo.sp_serveroption @server=N'MYSQL', @optname=N'collation compatible', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'MYSQL', @optname=N'data access', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'MYSQL', @optname=N'rpc', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'MYSQL', @optname=N'rpc out', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'MYSQL', @optname=N'connect timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'MYSQL', @optname=N'collation name', @optvalue=null
GO
EXEC master.dbo.sp_serveroption @server=N'MYSQL', @optname=N'query timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'MYSQL', @optname=N'use remote collation', @optvalue=N'true'
GO
USE [master]
GO
EXEC master.dbo.sp_addlinkedsrvlogin 
    @rmtsrvname = N'MYSQL'
    , @locallogin = NULL 
    , @useself = N'False'
    , @rmtuser = N'user'
    , @rmtpassword = N'password'
GO

然后在INSERT、DELETE和UPDATE上使用触发器来反映您在另一台服务器上所做的更改。

例如,插入:

代码语言:javascript
复制
CREATE TRIGGER dbo.ti_MyTable
   ON  dbo.MyTable
   AFTER INSERT
AS 
BEGIN
    SET NOCOUNT ON;

    INSERT INTO MySql.Database..MyTable (column1, column2, column3)
    SELECT column1, column2, column3 FROM Inserted
END
GO
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24647524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档