El año pasado habíamos visto como crear un servidor vinculado en SQL Server con Firebird, en ésta oportunidad veremos como hacerlo con MySQL, son muy parecidos los pasos a seguir, pero más sencillo que con el anterior motor.
Lo primero que necesitaremos es descargar el proveedor de datos OLE DB para MySQL (Perteneciente a Cherry Software). Ejecutamos el fichero setup.exe y seguimos los pasos correspondientes, en un punto de la instalación nos pedirá que descarguemos una librería (libmysql.dll) desde los repositorios de MySQL mismo, lo descargamos y copiamos en el path que nos indica, por lo general en: C:\\Archivos de programa\\Cherry City Software\\MySQL Provider\\
Luego abrimos el Microsoft SQL Server Managemente Studio y nos vamos a la sección de servidores vinculados (como se ve en la imagen)
Al dar doble clic sobre el proveedor nos aparecerá una pantalla como se ve en la imagen, y se debe marcar mínimamente la opción Permitir InProcess, si necesitan las otras opciones también lo deben marcar (ya es muy dependiente de sus necesidades).
Una vez preparado el proveedor como debe ser podemos ya comenzar a configurar el servidor vinculado:
1 2 3 4 5 6 7 8 9 10 11 | Servidor Vinculado: El que mas nos guste
Tipo de Servidor: Otro origen de datos
Proveedor: MySQL Provider
Nombre Producto: lo que se les ocurra
Origen: el nombre de host o ip donde esta alojado la bd MySQL
Catálogo: la BD a la que quieren conectarse |
En la pestaña de seguridad debemos agregar el usuario y password para la conexión a MySQL
Y finalmente configuramos opciones extras, las que les recomiendo que tengan habilitado son: RPC, Salida RPC y transacciones distribuidas.
Y para los más aventureros, si lo desean hacer por líneas de comandos, aquí va el equivalente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | USE [master] GO EXEC master.dbo.sp_addlinkedserver @server = N'DEVTROCE.LINKED', @srvproduct=N'Devtroce', @provider=N'OleMySql.MySqlSource', @datasrc=N'devtroce.com', @catalog=N'db' GO EXEC master.dbo.sp_serveroption @server=N'DEVTROCE.LINKED', @optname=N'collation compatible', @optvalue=N'false' GO EXEC master.dbo.sp_serveroption @server=N'DEVTROCE.LINKED', @optname=N'data access', @optvalue=N'true' GO EXEC master.dbo.sp_serveroption @server=N'DEVTROCE.LINKED', @optname=N'dist', @optvalue=N'false' GO EXEC master.dbo.sp_serveroption @server=N'DEVTROCE.LINKED', @optname=N'pub', @optvalue=N'false' GO EXEC master.dbo.sp_serveroption @server=N'DEVTROCE.LINKED', @optname=N'rpc', @optvalue=N'true' GO EXEC master.dbo.sp_serveroption @server=N'DEVTROCE.LINKED', @optname=N'rpc out', @optvalue=N'true' GO EXEC master.dbo.sp_serveroption @server=N'DEVTROCE.LINKED', @optname=N'sub', @optvalue=N'false' GO EXEC master.dbo.sp_serveroption @server=N'DEVTROCE.LINKED', @optname=N'connect timeout', @optvalue=N'0' GO EXEC master.dbo.sp_serveroption @server=N'DEVTROCE.LINKED', @optname=N'collation name', @optvalue=null GO EXEC master.dbo.sp_serveroption @server=N'DEVTROCE.LINKED', @optname=N'lazy schema validation', @optvalue=N'false' GO EXEC master.dbo.sp_serveroption @server=N'DEVTROCE.LINKED', @optname=N'query timeout', @optvalue=N'0' GO EXEC master.dbo.sp_serveroption @server=N'DEVTROCE.LINKED', @optname=N'use remote collation', @optvalue=N'true' GO EXEC master.dbo.sp_serveroption @server=N'DEVTROCE.LINKED', @optname=N'remote proc transaction promotion', @optvalue=N'true' GO USE [master] GO EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'DEVTROCE.LINKED', @locallogin = NULL , @useself = N'False', @rmtuser = N'miuser', @rmtpassword = N'********' GO |
Articulos Relacionados:
- Configurar Linked Server con SQL Server y Firebird
- Realizar Consultas Paginadas en SQL Server, MySQL, Oracle & PostgreSQL
- Tutorial de configuración de Servidores de Replicación en SQL Server
- Configurar varias instancias de MySQL en un mismo equipo
- Crear backup del Transaction Log y reducir su tamaño en SQL Server















en
en
en
hola soy nuevo en esto, y una vez que configuro el LS de SQL SERVER a MYSQL, como hago las consultas a MYSQL desde SQL SERVER???