Vous êtes sur la page 1sur 6

Link MySQL to MS SQL Server2008

I came up with Idea of this article, when I tried to create replication setup between MS SQL
2008 and MySQL. I was unable to do it since MS SQL provides only two non SQL
Subscriptions/Publishers options.

However I created the linked server through which I can access and query the MySQL databases
and tables.

A linked server (a virtual server) may be considered a more flexible way of achieving remote
access, with the added benefits of remote table access and distributed queries. Microsoft
manages the link mechanism via OLE DB technology. Specifically, an OLE DB data source
points to the specific database that can be accessed using OLEDB.

Let’s try and create MySQL linked Server on MS SQL Server 2008 and query a database.

Step 1: Create ODBC DSN for MySQL

To create ODBC DSN you need to download the MySQL Connector/ODBC Drivers 5.1 from
http://www.mysql.com/downloads/connector/odbc/ .

Once you download and install the ODBC drivers, it’s time to create the DSN. Initially check if
the drivers are listed under your data sources from CONTROL PANEL>Administrative
Tools>Data Sources(ODBC)

After you see the drivers listed. Follow the Images to setup MySQL ODBC DSN.
On System DSN tab click Add button,

After you click OK and Close the window, MySQL ODBC will be added to System DSN as
shown below.

Steps 2: Create Linked Server through SSMS

Under Object Browser expand Server Objects and right click Linked Servers as shown below
Click New Linked Sever, It brings up a window; fill in the information as shown to create linked
server under General tab.

In the above screen I have entered the following details to create a linked server for MySQL.

Provider: Microsoft OLE DB Provider for ODBC Drivers

Product name: MySQL

Data Source: MySQL (This the system dsn created earlier)


Provider String: DRIVER={MySQL ODBC 5.1
Driver};SERVER=localhost;PORT=3306;DATABASE=repltest;
USER=user;PASSWORD=password;OPTION=3;

(This string is providing all the information to connect to MySQL using the ODBC)

Location: Null

Catalog: repltest (Database name to access and query)

Now on the Security tab, select Be made using this security context option and enter the
credentials to connect to MySQL server.

Also finally under Server Options tab, change RPC and RPC Out properties to True, by default
they are set to False.
Click Ok, after making all the mentioned changes. This will create the linked server and it will
be listed under SSMS Object Browser. Right Click on the MYSQL linked server and click Test
Connection.
It should show you the above once succeeded. You can also browse the MYSQL linked server to
check if the catalogs are displayed by expanding it.

Step 3: Create Linked Server using T-SQL

While the linked server can be created using the built-in wizard of the Management Studio, it can
also be created using TSQL statements as in the following listing (run both statements, the first
one creates the linked server and the second the logins).

Exec master.dbo.sp_addlinkedserver
@server=N’localhost’,
@srvprodcut=N’MySQL’,
@provider=N’MSDASQL’,
@datasrc=N’MySQL’

Exec master.dbo.sp_addlinkedserverlogin
@server=N’localhost’,
@locallogin=NULL,
@rmtuser=N’user’,
@rmtpassword=N'<your password>’
@rmtsrvname=N’localhost’

Step 4: Accessing and Querying MySQL through SSMS

Open a new query tab, and run a select query [ select * from openquery(MYSQL,‘select * from
reptab’)]

Since we also have enabled the RPC, we can test the same using the following query [Execute
(‘select * from reptab‘)at MYSQL]

If it returns the same results, the RPC is configured fine.

Follow all the above steps to configure working Linked Server to MySQL

Vous aimerez peut-être aussi