Sql Server e MySql: creare un Linked Server

4.8
(214)

Come creare Linked Server tra SQL Server e MySQL? Vediamo come connettere un istanza Sql Server con un server MySQL e consentire l’esecuzione di query tramite three dot notation e/o con la funzione OPENQUERY.

La guida nasce dalla necessità di accedere ad un database del mio sito da un istanza SQL Server ed eseguire query in tempo reale e poter utilizzare i dati presenti sul server MySQL all’interno di JOIN, MERGE e altri comandi similari.

Ciò non esclude la possibilità di ottenere risultati simili utilizzando i tool di Import/Export.

Sommario

Installare MySQL Connector

Per integrare Sql Server e MySql utilizzeremo la funzionalità  Linked Server  che ci permetterà di accedere ad altre sorgenti di dati attraverso una serie di provider disponibili: nello specifico, vedremo come è possibile creare un Linked Server che punti a una istanza MySQL ubicata su una macchina accessibile tramite LAN.

La prima cosa da fare è scaricare il MySQL Connector per ODBC e installarlo sulla macchina che ospita l’istanza SQL Server sulla quale vogliamo creare il Linked Server. Questa operazione è fondamentale per rendere il server in grado di potersi connettere a MySQL.

L’ultima versione del MySQL Connector per ODBC può essere scaricata al seguente indirizzo:

Assicuratevi di scaricare la versione adatta all’architettura della macchina (x86 o x64). Inoltre, potrebbe essere necessario installare l’ultima versione dei seguenti bundle:

Una volta installato il connector, sarà possibile creare il Linked Server.

Linked Server tra Sql Server e MySql

Il Linked Server può essere creato in due modi:

La prima modalità è indubbiamente più laboriosa, ma da un punto di vista di sicurezza è preferibile in quanto, come avremo modo di vedere tra poco, consente di evitare la presenza della connection string in chiaro, evitando quindi di dover esporre le credenziali di accesso a MySQL.

Creare un Data Source dedicato

Per creare il Linked Server mediante l’aggiunta di un Data Source dedicato, eseguire le seguenti operazioni:

Sql Server e MySql – creare Data Source
Sql Server e MySql Connector

IMPORTANTE: Prendete nota del Data Source Name che sceglierete, in quanto dovrete utilizzarlo più avanti.

Subito dopo aver compilato i parametri del caso, sarà possibile verificare la connessione al server MySQL facendo click sul pulsante Test: inutile dire che, affinché il test funzioni, è necessario che il server risulti accessibile, quindi occorrerà configurare l’eventuale firewall nel modo opportuno.

Creare un Linked Server in Sql Server

Una volta creato il Data Source, occorrerà creare il Linked Server vero e proprio. Il modo migliore per farlo è utilizzando SQL Server Management Studio (SSMS), lo strumento gratuito fornito da Microsoft per gestire istanze SQL Server locali e/o remote: l’ultima versione (ad oggi la 18.5) è disponibile a questo indirizzo.

Una volta scaricato e installato SSMS, utilizzatelo per connettetevi all’istanza SQL Server sulla quale desiderate creare il Linked Server. Dalla finestra denominata Object Explorer espandete il nodo Server Objects, quindi fate click con il tasto destro su Linked Servers e selezionate New Linked Server, come nella screenshot seguente:

Sql Server e MySql – Creare linked server

Nella schermata che si aprirà sarà possibile impostare i parametri del linked server nel seguente modo:

Sql Server e MySql – Creare linked server – Step 1

Una volta configurati i parametri generali, spostatevi nella tab Security, dove sarà necessario:

Sql Server e MySql – Creare linked server – Step 1

Fatto questo, sarà possibile fare click sul pulsante OK e completare la creazione del Linked Server.

Senza Data Source dedicato

Nel caso in cui si preferisse creare il Linked Server senza un Data Source dedicato, sarà possibile farlo direttamente dello strumento SSMS, evitando quindi tutta la parte legata al Pannello di Controllo e allo strumento ODBC Data Source, svolgendo le seguenti operazioni:

Sql Server e MySql – Creare linked server senza Data Source
Driver={MySQL ODBC 8.0 Unicode Driver};DATABASE=database_name;OPTION=134217728;PWD=user_password;UID=user_identification;SERVER=server_name

Utilizzare il Linked Server

Una volta creato il Linked Server è possibile interrogarlo nei seguenti modi:

SELECT * FROM [MANTIS (MYSQL)]...[mantis_bug_table];
SELECT * FROM OPENQUERY([MANTIS (MYSQL)], 'SELECT * FROM mantis.mantis_bug_table');

In entrambi i casi, se i passaggi illustrati saranno stati svolti correttamente, riusciremo a visualizzare i dati presenti nella tabella MySQL direttamente da SQL Server.

La differenza principale tra le due modalità illustrate è che la three dot notation prevede l’utilizzo della sintassi T-SQL, mentre la funzione OPENQUERY consente l’utilizzo della sintassi tipica di MySQL, con tutte le funzioni supportate dal server MySQL collegato: sarà quindi possibile utilizzare funzionalità specifiche di quel database, come ad esempio l’utilissimo comando LIMIT.

Conclusione

Abbiamo visto come creare un integrazione tra SQL Server e MySql utilizzando un data source

/ 5
Grazie per aver votato!
Vuoi abilitare le notifiche?
Desiderate avere la possibilita’ di ricevere delle notifiche? Se si avrete la possibilita’ di essere sempre aggiornati con le nostre ultime proposte o notizie . Consigliamo l’adesione Grazie !
Attiva

How useful was this post?

Click on a star to rate it!

Average rating 4.8 / 5. Vote count: 214

No votes so far! Be the first to rate this post.

Vai alla barra degli strumenti