Escenario: Necesidad de acceder una base de datos MySQL desde Microsoft SQL Server: En este caso MySQL 5.0.77 correiendo sobre un servidor CentOS y SQL Server 2005 corriendo sobre windows 2003. nota: Los sistemas operativos no tienen que ver, y en teora, el procedimiento descrito funcionara para cualquier versin de ambas bases de datos (o al menos ms recientes). Procedimiento: A continuacin los pasos: 1. Descargar el conector odbc de mysql (link) e instalarlo en el servidor windows desde donde se realizar la conexin. En este caso, se ha descargado el archivo: mysql-connector-odbc-3.51.30-win32.msi Con el nuevo conector, construya un odbc que apunte al servidor MySQL:
Despus de ingresar los parmetros de conexin recuerde realizar la prueba de conexin desde el boton test
NOTAS: o Tome en cuenta que los ODBC de sistema en windows 7 no son visibles directamente o Recomiendo reiniciar el servidor para que el nuevo controlador sea reconocido completamente en todo el sistema.
2. Ahora desde el Management Studio de SQL Server agregar el servidor vinculado:
En el dialogo Nuevo servidor vinculado; tome en cuenta lo siguiente: o Servidor vinculado: cualquier nombre o Tipo: Otro origen de datos o Proveedor: Microsoft OLE DB Provider for ODBC Drivers o Nombre del producto: Una referencia o Origen de datos: el nombre del DSN creado en el paso 1
En la ficha seguridad,
y en opciones de usuario, habilitar RPC y Salida RPC:
Al presionar el botn aceptar, el nuevo servidor vinculado debe aparecer en la lista de servidores vinculados. Tambin, es necesario: en la carpeta Proveedores dentro de servidores vinculados, cambiar las propiedades de MSDASQL segn la siguiente imgen:
_______________________________________________________________ _________________________________________________ Listo, se ha configurado el servidor MySQL como servidor vinculado en SQL Server. Ahora, para poder ejecutar consultas en MySQL desde SQL Server se debe usar la instruccin OPENQUERY: a continuacin algunos ejemplos: Del servidor vinculado CallCenter. seleccione todos los registros de la tabla calls y mustrelos en pantalla: 1 select * from OPENQUERY(CallCenter, 'select * from calls;') Insertar un registro en la tabla calls: para la campaa 6 ingresa el telefono 99717239 1 insert into OPENQUERY(CallCenter, 'select id_campaign, phone from calls;') values (6, '99717239') Insertar varios registro en la tabla calls del servidor vinculado, desde una tabla en el servidor MSSQL: 1 insert into OPENQUERY(CallCenter, 'select id_campaign, phone from calls;') select id as id_campaign, phone from otraTabla Borrar los registros correspondientes a la campaa 6 en el servidor vinculado: 1 delete OPENQUERY(CallCenter, 'select * from calls where id_campaign = 6;') Tome en cuenta que las instrucciones delete son mas lentas; parece que lo hace lnea por lnea. Actualizar la campaa 6 a campaa 7: 1 update OPENQUERY(CallCenter, 'select id_campaing from calls where id_campaign = 6;') set id_campaing = 7 Otras consideraciones 1. Desde el servidor mysql se debe tener configuurado el acceso desde el servidor sql server para el usuario con el que se realiza el DSN 2. Despus de la instalacin del ODBC y de la creacin del servidor vinculado, es recomendable reinicar el servidor o al menos el servicio MSSQL.