Como adiciono um servidor vinculado ao MySQL no SQL Server?

8

Estou tentando adicionar um servidor vinculado no SQL Server ao MySQL Server.

Observe que o SQL Server está instalado em uma máquina separada com um nome de domínio diferente.

O SQL Server está 10.0.1.1em old_domain.com.

O servidor MySQL está 10.0.1.2em new_domain.com.

Adicionei uma fonte de dados ODBC no servidor 10.0.1.1e testei a conexão sem problemas relatados.

Abri o Microsoft SQL Server Management Studio e naveguei para SQL SERVER > Server Object > Linked Servers.

Cheguei ao assistente para adicionar um servidor vinculado e o configurei assim:

  1. Servidor vinculado: "MySQLNewServer"
  2. Selecionei "Outra fonte de dados" Provedor "Microsoft OLE DB Provider para ODBC" Nome do produto "Conexão ao MySQL" Fonte de dados "MySQL" o mesmo nome na Fonte de Dados que foi adicionada na primeira etapa.
  3. Na guia segurança, selecione "Ser criado usando este contexto de segurança" e coloquei o nome de usuário e a senha do SQL Server
  4. Eu apertei "Ok"

Nota: Eu segui as instruções neste link http://dbperf.wordpress.com/2010/07/22/link-mysql-to-ms-sql-server2008/

No entanto, eu recebo este erro:

O provedor OLE DB "MSDASQL" para o servidor vinculado "MySQLNewServer" retornou a mensagem "[MySQL] [Driver ODBC 5.2 (w)] Não é possível conectar ao servidor MySQL no 10.0.1.1 (10055) Erro do Microsoft SQL Server: 7303.

Alguém pode me dizer o que estou fazendo de errado? Como faço para que esses 2 servidores se comuniquem?

Mike
fonte

Respostas:

1

Temos um servidor vinculado no SQL apontando para um servidor MySQL. Criar o servidor vinculado é uma coisa bastante direta.

A parte complicada é obter as permissões classificadas no lado do MySQL.

Se a memória estiver correta, você precisará criar uma conta local no servidor SQL e criar um login no servidor MySQL para obter o nome completo do computador em que o servidor vinculado será executado.

No servidor SQL, tenho um logon para o Sqltest. Esta é uma conta SQL

Nas propriedades do servidor vinculado, tenho "Segurança"> Ser criada usando este contexto de segurança> Nome de usuário e senha de login do MySQL

Na caixa MySQL, tenho um login para [email protected]. É aqui que o meu servidor vinculado falha há muito tempo.

Adrian Sullivan
fonte
1

Eu acredito que o MySQL e o MS-SQL devem permitir conexões remotas. A função do ODBC é criar um canal bidirecional em termos de transferência de dados (mesmo se enviar um ACK para a conexão do servidor vinculado), ou seja, verificar logins remotos do lado do MS-SQL. verifique se a porta 3306 é permitida através do firewall 10.0.1.1.

Chagbert
fonte
0

Especularei que isso não é exatamente algo que você está fazendo de errado, é mais como o Windows não terá muitos problemas para lhe dizer qual é o problema real.

O número entre parênteses (10055) é o erro do sistema retornado quando o driver ODBC tentou se conectar ao 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.

Não é muito útil. É o erro 10055 WSAENOBUFS, que pode ser um código mais útil para procurar informações sobre a natureza do problema ou pode ser uma distração, um efeito colateral do problema real.

A boa notícia, se houver boa notícia, é que me sinto confiante de que você pode pelo menos reduzir sua solução de problemas pela metade e se concentrar apenas no lado do SQL Server, porque esse não é um erro que o MySQL Server "retornaria" para você. O que quero dizer é que isso não é um fracasso "durante a conexão", é um fracasso em realmente começar o processo de conexão. Você nunca está realmente se conectando ao servidor MySQL, portanto, você poderá descartar com segurança as permissões e outras configurações no servidor MySQL como parte do problema até que você passe por essa condição específica que o impede de tentar conectar.

Em outra pergunta aqui , o código de erro era o mesmo e o problema era a incapacidade de conectar-se a um servidor MySQL, embora eu pense que, nesse caso, não era um servidor vinculado, mas apenas uma conexão de cliente comum e o computador em questão. aparentemente estava tendo problemas de rede.

O outro código de erro, 7303, parece implicar um problema de permissões no lado do SQL Server. Também aqui . Desculpe, não posso ser mais específico com o que tentar, mas talvez algo aqui o leve a uma direção útil.

Michael - sqlbot
fonte
Eu não tenho tanta certeza. Em um ponto, estava funcionando bem. mas eu notei isso alguns dias atrás quebrado. Desde então, desliguei a pesquisa de DNS no servidor mysql. então o MySQL procurará apenas o endereço IP. Mas isso não deve importar, porque o usuário que estou usando para conectar-se ao mysql é root @%. Não sei se a adição de "skip-name-resolve" ao mysql causou esse problema ou não, uma vez que tossi esse problema um pouco depois que a alteração ocorreu.
5133 Mike