¿Cómo agrego un servidor vinculado MySQL a SQL Server?

8

Estoy tratando de agregar un servidor vinculado en SQL Server a MySQL Server.

Tenga en cuenta que SQL Server está instalado en una máquina separada con un nombre de dominio diferente.

El servidor SQL está 10.0.1.1en old_domain.com.

El servidor MySQL está 10.0.1.2en new_domain.com.

Agregué una fuente de datos ODBC en el servidor 10.0.1.1y probé la conexión sin problemas.

Luego abrí Microsoft SQL Server Management Studio y navegué a SQL SERVER > Server Object > Linked Servers.

Llegué al asistente para agregar un servidor vinculado y lo configuré así:

  1. Servidor vinculado: "MySQLNewServer"
  2. Seleccioné "Proveedor de otra fuente de datos" Proveedor Microsoft OLE DB para ODBC "Nombre del producto" Conexión a MySQL "Fuente de datos" MySQL "el mismo nombre en la Fuente de datos que se agregó en el primer paso.
  3. En la pestaña de seguridad, seleccioné "Realizar usando este contexto de seguridad" y puse el nombre de usuario y la contraseña de SQL Server
  4. Golpeé "Ok"

Nota: Seguí las instrucciones en este enlace http://dbperf.wordpress.com/2010/07/22/link-mysql-to-ms-sql-server2008/

Sin embargo, me sale este error:

OLE DB Providor "MSDASQL" para el servidor vinculado "MySQLNewServer" devolvió el mensaje "[MySQL] [ODBC 5.2 (w) Driver] No se puede conectar al servidor MySQL en 10.0.1.1 (10055) Error de Microsoft SQL Server: 7303.

¿Alguien puede decirme qué estoy haciendo mal? ¿Cómo puedo hacer que estos 2 servidores se comuniquen?

Miguel
fuente

Respuestas:

1

Tenemos un servidor vinculado en SQL que apunta a un servidor MySQL. Crear el servidor vinculado es algo bastante sencillo.

La parte difícil es obtener los permisos ordenados en el lado de MySQL.

Si la memoria me sirve, debe crear una cuenta local en el servidor SQL y crear un inicio de sesión en el servidor MySQL para el nombre completo de la computadora donde se ejecutará el servidor vinculado.

En el servidor SQL tengo un inicio de sesión para Sqltest. Esta es una cuenta SQL

En las propiedades del servidor vinculado tengo "Seguridad"> Realizado usando este contexto de seguridad> Nombre de usuario y contraseña de inicio de sesión MySQL

En el cuadro MySQL tengo un inicio de sesión para [email protected]. Aquí es donde mi servidor vinculado falló durante bastante tiempo.

Adrian Sullivan
fuente
1

Creo que tanto MySQL como MS-SQL deberían permitir conexiones remotas. La función del ODBC es crear una tubería que sea bidireccional en términos de transferencias de datos (incluso si se envía un ACK para la conexión del servidor vinculado), es decir, también se verifican los inicios de sesión remotos desde el lado de MS-SQL. asegúrese de que el puerto 3306 esté permitido a través del firewall de 10.0.1.1.

Chagbert
fuente
0

Especularé que esto no es exactamente algo que estás haciendo mal, es más como que Windows no tendrá muchos problemas para decirte cuál es el problema real.

El número entre paréntesis (10055) es el error del sistema devuelto cuando el controlador ODBC intentó conectarse a MySQL.

C:\>perror 10055
Win32 error code 10055: An operation on a socket could not be performed because
the system lacked sufficient buffer space or because a queue was full.

No es terriblemente útil. El error 10055 es WSAENOBUFS, que podría ser un código más útil para buscar información sobre la naturaleza del problema, o podría ser una distracción, un efecto secundario del problema real.

La buena noticia, si hay buenas noticias, es que estoy seguro de que al menos puede reducir su resolución de problemas a la mitad y centrarse solo en el lado del Servidor SQL, porque este no es un error que MySQL Server le "devolverá". Lo que quiero decir es que esto no es una falla "mientras se conecta", es una falla en comenzar incluso con el proceso de conexión. En realidad, nunca se está conectando al servidor MySQL, por lo que debería poder descartar de forma segura los permisos y otras configuraciones en el lado del servidor MySQL como parte del problema hasta que supere esta condición particular que le impide incluso intentar conectar.

En otra pregunta aquí , el código de error era el mismo, y el problema era la incapacidad de conectarse a un servidor MySQL, aunque creo que en ese caso no era un servidor vinculado sino solo una conexión de cliente normal, y la computadora en cuestión aparentemente estaba teniendo problemas de red.

El otro código de error, 7303, parece implicar un problema de permisos en el lado del servidor SQL. También aquí . Lo siento, no puedo ser más específico con las cosas para probar, pero tal vez algo aquí lo lleve en una dirección útil.

Michael - sqlbot
fuente
No estoy muy seguro. En un momento estaba funcionando bien. pero lo noté hace un par de días roto. Desde entonces, apagué la búsqueda de DNS en el servidor MySQL. entonces MySQL solo mirará la dirección IP. Pero eso no debería importar porque el usuario que estoy usando para conectarme a mysql es root @%. No sé si agregar "skip-name-resolve" a mysql causó este problema o no, ya que tose este problema un tiempo después de que se produjo ese cambio.
Mike