mercredi 7 octobre 2015

Create a Linked Server for a MySQL Database in SQL Server 2005

I'm currently trying something I've never done before - I'm trying to access MySQL data in an SQL Server environment. Where I am, we have two servers (the MySQL and MSSQL servers), and each stores different types of data. Recently I've found a need to write queries that include data for both servers. One of the ways I read to do this is adding a "Linked Server" in SQL Server. But try as I might I cannot seem to get a Linked Server added.

I am working on a Windows 7 system, our SQL Server instance is 2005, and the MySQL version is 5.5.31.

What I've done so far is this:

 - Downloaded and installed the MySQL ODBC drivers (http://ift.tt/1hr1Vdl)
 - Created a System DSN using that driver for the MySQL database, called "Production". (I also tested the connection from the Data Sources application and it connects just fine).
 - Checked for the Provider in SQL Server (MSDASQL) to configure options such as "allow nested queries" and "allow 'LIKE' operator"
 - right click on Linked Servers in Server Objects in SQL Server > "New Linked Server"

From here, I fill out the linked server info like this:


 Checked "Other data source" (not SQL Server)


 Chose Provider "Microsoft OLE DB Provider for ODBC Drivers"


 Product Name: "Production"


 Data Source: (the name of the System DSN) Production


Then in the security tab, I chose the "Connections will be made using this security context" and provided my username and login for the MySQL server.

Then this is where I run into an error every time. I always get the following error message:

"The linked server has been created but failed a connection test. Do you want to keep the linked server?"

------------------------------
ADDITIONAL INFORMATION:

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.Express.ConnectionInfo)

------------------------------

Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "FLUX".
OLE DB provider "MSDASQL" for linked server "FLUX" returned message "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified". (Microsoft SQL Server, Error: 7303)

For help, click: http://ift.tt/1LitqSF

If you click that link for help, by the way, nothing shows up. I saw other people suggested trying an older MySQL ODBC driver, adding a System Data Source for the 32bit driver as well as the 64bit driver, and restarting my machine (not the DB server) -- none of these fixed my error.

What I do not understand is why my System DSN seems to work and connect fine, but SQL Server cannot see the Data Source. Does anyone see what I'm missing, or what I might be configuring incorrectly?

Thanks for your time.

EDIT Clarified that I restarted my local machine, but not the DB server since trying to add the Linked Server.

Aucun commentaire:

Enregistrer un commentaire