Imprimir
Categoria: Sql Server
Acessos: 157

Uma demanda que nos surgiu foi criar um vínculo entre dois servidores de banco de dados para que possam trocar informações; o SQL Server seria o banco de dados principal na sede da empresa (local) e o banco de dados MySQL é o seu banco de dados na internet para o e-commerce.

Passo a passo da criação do "Linked Server":

 

Realize o teste dessa conexão, para verificar se tudo está correto:

 

USE [master]
GO

/****** Object: LinkedServer [SER] Script Date: 03/01/2023 23:27:16 ******/
EXEC master.dbo.sp_addlinkedserver @server = N'SER', @srvproduct=N'lojayii', @provider=N'MSDASQL', @datasrc=N'loja365', @provstr=N'DRIVER={MySQL ODBC 8.0 Unicode Driver}; Hostname=loja365.mysql.dbaas.com.br; PORT=3306; DATABASE=loja365; LogonID=lojayii; PASSWORD=tytttrrrW#1968'
/* For security reasons the linked server remote logins password is changed with ######## */


EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'SER',@useself=N'False',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL
GO

EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'collation compatible', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'data access', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'dist', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'pub', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'rpc', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'rpc out', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'sub', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'connect timeout', @optvalue=N'0'
GO

EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'collation name', @optvalue=null
GO

EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'lazy schema validation', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'query timeout', @optvalue=N'0'
GO

EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'use remote collation', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'SER', @optname=N'remote proc transaction promotion', @optvalue=N'true'
GO

 

Com o botão direito do mouse sobre a nova conexão "SER" teste-a, se tudo ok vamos em frente:

 Mapeie o usuário do banco de dados SQL Server no usuário no banco de dados MySQL remoto, tudo pronto agora é só testar !

 

Referências:

[1] - OPENQUERY (Transact-SQL) - SQL Server | Microsoft Learn