Come faccio ad aggiungere un server collegato MySQL a SQL Server?


8

Sto cercando di aggiungere un server collegato su SQL Server a MySQL Server.

Si noti che SQL Server è installato su un computer separato con un nome di dominio diverso.

SQL Server è 10.0.1.1su old_domain.com.

Il server MySQL è 10.0.1.2su new_domain.com.

Ho aggiunto un'origine dati ODBC sul server 10.0.1.1e testato la connessione senza problemi segnalati.

Quindi ho aperto Microsoft SQL Server Management Studio e sono passato a SQL SERVER > Server Object > Linked Servers.

Sono arrivato alla procedura guidata per aggiungere un server collegato e l'ho configurato in questo modo:

  1. Server collegato: "MySQLNewServer"
  2. Ho selezionato "Altro origine dati" Provider "Microsoft OLE DB Provider per ODBC" Nome prodotto "Connessione a MySQL" Origine dati "MySQL" lo stesso nome nell'origine dati che è stato aggiunto nel primo passaggio.
  3. Nella scheda sicurezza ho selezionato "Fatti usare usando questo contesto di sicurezza" e ho inserito il nome utente e la password di SQL Server
  4. Ho premuto "Ok"

Nota: ho seguito le istruzioni su questo link http://dbperf.wordpress.com/2010/07/22/link-mysql-to-ms-sql-server2008/

Tuttavia, ottengo questo errore:

Il provider OLE DB "MSDASQL" per il server collegato "MySQLNewServer" ha restituito il messaggio "[MySQL] [Driver ODBC 5.2 (w)] Impossibile connettersi al server MySQL su 10.0.1.1 (10055) Errore di Microsoft SQL Server: 7303.

Qualcuno può dirmi cosa sto facendo di sbagliato? Come posso comunicare con questi 2 server?

Risposte:


1

Abbiamo un server collegato su SQL che punta a un server MySQL. La creazione del server collegato è una cosa piuttosto semplice.

La parte difficile è ottenere i permessi risolti sul lato MySQL.

Se la memoria serve al mio diritto, devi creare un account locale sul server SQL e creare un accesso sul server MySQL per il nome completo del computer su cui verrà eseguito il server collegato.

Sul server SQL ho un login per Sqltest. Questo è un account SQL

Sulle proprietà del server collegato ho "Sicurezza"> Effettuare utilizzando questo contesto di sicurezza> Nome utente e password di accesso MySQL

Sulla scatola di MySQL ho un login per Sqltest@myserver.com. È qui che il mio server collegato non è riuscito per un periodo piuttosto lungo.


1

Credo che sia MySQL che MS-SQL dovrebbero consentire connessioni remote. Il ruolo dell'ODBC è quello di creare una pipe bidirezionale in termini di trasferimenti di dati (anche se per inviare un ACK per la connessione al server collegato), ovvero controllare anche gli accessi remoti dal lato MS-SQL. assicurarsi che la porta 3306 sia consentita attraverso il firewall di 10.0.1.1.


0

Suppongo che questo non sia esattamente qualcosa che stai facendo di sbagliato, è più come se Windows non si preoccupasse molto di dirti qual è il problema reale.

Il numero tra parentesi (10055) è l'errore di sistema restituito quando il driver ODBC ha provato a connettersi 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.

Non molto utile. L'errore 10055 è WSAENOBUFS, che potrebbe essere un codice più utile da utilizzare nella ricerca di informazioni sulla natura del problema o potrebbe rivelarsi una distrazione, un effetto collaterale del problema reale.

La buona notizia, se ci sono buone notizie, è che sono fiducioso che puoi almeno dimezzare la risoluzione dei problemi e concentrarti solo sul lato SQL Server, perché questo non è un errore che MySQL Server "ti restituirebbe". Ciò che intendo è che non si tratta di un errore "durante la connessione", è un errore persino nel cominciare il processo di connessione. In realtà non ti stai mai connettendo al server MySQL, quindi dovresti essere in grado di escludere in modo sicuro autorizzazioni e altre configurazioni sul lato MySQL Server come parte del problema fino a quando non superi questa particolare condizione che ti impedisce di provare anche a Collegare.

In un'altra domanda qui , il codice di errore era lo stesso e il problema era l'incapacità di connettersi a un server MySQL, anche se penso che in quel caso non fosse un server collegato ma solo una normale connessione client e il computer in questione apparentemente stava avendo problemi di rete.

L'altro codice di errore, 7303, sembra implicare un problema di autorizzazioni sul lato SQL Server. Anche qui . Mi dispiace non posso essere più specifico con le cose da provare, ma forse qualcosa qui ti farà andare in una direzione utile.


Non ne sono troppo sicuro. A un certo punto funzionava bene. ma l'ho notato un paio di giorni fa rotto. Da allora ho disattivato la ricerca DNS sul server mysql. quindi MySQL guarderà solo l'indirizzo IP. Ma ciò non dovrebbe importare perché l'utente che sto usando per connettermi a mysql è root @%. Non so se l'aggiunta di "skip-name-resolver" a mysql abbia causato questo problema o meno da quando ho tossito questo problema poco dopo che è avvenuta la modifica.
Mike,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.