SQL SERVER : Configurando MySQL como servidor vinculado desde SQL Server 2008 R2

Después de varios intentos logre conectar un servidor MySQL con otro servidor SQL Server mediante Servidores vinculados, aquí explico los pasos a seguir:

Lo primero que necesitaremos es descargar el proveedor de datos OLE DB para MySQL

1. Descargar el conector odbc de mysql de la página: http://dev.mysql.com/downloads/connector/odbc/ , luego instalar en el servidor windows desde donde se realizará la conexión.

2. Ingresar a Orígenes de datos ODBC de Herramientas administrativas del Panel de Control :



Ingresamos los parámetros de conexión y damos click en el botón Test para verificar que la conexión se realizó con éxito.

Luego ingresamos a Management Studio de SQL Server y agregamos el servidor vinculado:




Registrar en el Nuevo servidor vinculado los siguientes datos:
  • Servidor vinculado: Nombre que identifique al servidor vinculado (cualquier nombre)
  • Tipo: Otro origen de datos
  • Proveedor: Microsoft OLE DB Provider for ODBC Drivers
  • Nombre del producto: Una referencia
  • Origen de datos: el nombre del DSN creado

En la opción de Seguridad seleccionar el user y password que permitirá conectar al servidor MySQL.




En la opción Opciones del Servidor habilitar el RPC y Salida RPC (Remote Procedure Call) para llamar a un procedimiento almacenado en el servidor remoto.





Después de presionar el botón aceptar, el nuevo servidor vinculado debe figurar en la lista de servidores vinculados.

Finalmente en  la carpeta Proveedores dentro de servidores vinculados, cambiar las propiedades de MSDASQL :







Si llegaste hasta aquí ya tienes configurado el servidor MySQL como servidor vinculado en SQL Server.

Para ejecutar consultas en MySQL desde SQL Server se debe usar la instrucción OPENQUERY. Ejemplo :


SELECT * FROM OPENQUERY(MYSQL47, SELECT * FROM tabla;')

INSERT INTO OPENQUERY(MYSQL47, 'SELECT campo1,campo2 FROM tabla;') VALUES (campo1, 'campo2')

INSERT INTO OPENQUERY(MYSQL47, 'SELECT campos1,campo2;') SELECT campo1 AS alias, campo2 FROM otraTabla

DELETE OPENQUERY(MYSQL47, 'SELECT * FROM tablaWHERE campo = x;')

UPDATE OPENQUERY(MYSQL47, 'SELECT campo1 FROM tablaWHERE campo =  x;') SET campo = x


Comentarios

Entradas populares de este blog

Para que sirve la N en SQL Server

MYSQL : CURSORES

SQL SERVER : EJECUTAR UN PAQUETE SSIS