SQL Server’dan Linked Server ile MySQL bağlanma

By | October 14, 2014

Merhabalar,

Bugün sizlere SQL Server ile MySql linked server nasıl yapılır ve kullanımı hakkında bilgi vereceğim. Bu bağlantı aracılığı ile MS SQL Server’da olan verilerinizi MySQL’e aktarabilir yine MySQL’de olan verilerinizin MS SQL Server’a aktarılmasını sağlayabilirsiniz. Tabi bu proje için SSIS’de yine kullanılabilir.

İlk olarak yapmamız gereken MySQL’in ODBC driverin indirip kurmamız bunun için http://dev.mysql.com/downloads/connector/odbc/ bu adresten faydalanacağız. Benim makinem Windows 7 64 bit olduğu için ona uygun olan bir driver seçtim ve indirdim sizde kendi bilgisayarınıza / sunucunuza uygun olanı indirin.

İndirme işlemi tamamladığını varsayarak kurulum işlemine başlayalım.

MYSQL Connector - Resim 1

 

Kurulum için bir type seçimi yapıyoruz.

MYSQL Connector - Resim 2

Standart bir kurulum gibi Next Next diyor ve kurulumu tamamlıyoruz.

MYSQL Connector - Resim 3

Kurulum bilgisi tamamladıktan sonra gerekli ODBC tanımlamasını yapacağız. Bu işlem için çalıştıra odbcad32.exe yazıyoruz ve karşımıza aşağıdaki gibi bir ekran geliyor.

ODBC - Resim 4

Yukarıdaki ekranda Add butonuna basıyoruz.

create new data source

 

Yukarıdaki resimdeki gibi yüklediğimiz MySQL ODBC Driver seçiyoruz ve finish butonuna bastığımızda aşağıdaki gibi bir ekran karşımıza geliyor. Bu ekran üzerinde MySQL veritabanı bağlantı bilgilerimizi giriyoruz.

ODBC Data Source Configuration Resim 5

Bilgi girişlerimizi yaptıktan sonra bağlantının doğruluğu için test butonu ile doğruluğunu sağlıyoruz.

Test Result Resim 6

Bağlantının doğruluk bilgisini aldıktan sonra Details butonu ile gerekli bağlantı için detayları tanımlıyoruz.

ODBC Connection - Resim 7

Connection sekmesinden yukarıdaki gibi tanımlamaları yapıyoruz. Cursors / Results sekmesinde ise aşağıdaki gibi değişiklikleri yapıyoruz.

ODBC Cursors Result - Resim 8

ODBC için gerekli tanımlayı yaptıktan sonra SQL Server Management Studio üzerinden MSDASQL’in propertieslerinde değişiklik yapmamız gerekiyor.

MSDASQL - Resim 9

Yukarıdaki resimdeki alana geldikten sonra aşağıdaki alanların check işaretliyoruz.

  • Nested queries
  • Level zero only
  • Allow inprocess
  • Supports ‘Like’ Operator

MSDASQL Properties - Resim 10

 

Şimdi ise Linked Server tanımlamaya başlayabiliriz. Detayları aşağıdadır.

New Linked Server - Resim 11

Yeni Linked Server oluşturma ekranı geliyor aşağıdaki gibi bizde buradan Microsoft OLEDB Provider for ODBC Drivers seçeneğini seçiyoruz.

New Linked Server 2 - Resim 12

 

Aşağıdaki resimde ki gibi RPC alanlarını true olarak değiştiriyoruz.

New Linked Properties - Resim 13

New Linked Properties 2 - Resim 14

Tanımlamalar bitti şimdi ise oluşturduğumuz linked server’dan test connection yapalım.

New Linked test Connection - Resim 15

Evet tanımlamalarımız tamamlanmıştır şimdi New Query ile MySQL veritabanına ait işlemlerimizi yapalım ve sonuçları görüntüleyelim.

Öncelikli olarak MySQL de bulunan veritabanı içerisinde tblUyeler isiminde bir tablo oluşturuyoruz. Bu işlemi Php MyAdmin yada MySQL Workbench ile yapabiliriz.

Php myAdmin’de çalıştırdığım kod parçası ;

create table tblUyeler (ID int ,Name varchar(30))

Tablomuz oluştuğuna göre artık MS SQL Server’dan Data ekleyebilir ,silebilir ve güncelleyebiliriz. Aynı şekilde datayı kendi MS SQL Server sunucumuza da aktarımı sağlayabiliriz.

Code - Resim 16

Yukarıdaki resimdeki gibi kullanabildiğimiz gibi aşağıdaki gibi de bir kullanım mevcut.

select *from MYSQL…tblUyeler

MySQL’de olan bir tablonun aynısını MS SQL Server’a nasıl aktarabiliriz ?

MS SQL Server’da DBA isiminde veritabanı içerisinde tblUyelerMYSQL isiminde tblUyeler ile aynı ozelliklerde bir tablo oluşturalım. Bunun için ;

create Table DBA.dbo.tblUyelerMySQL( ID int, Name varchar(30))

Aktarım için ise aşağıdaki kod kullanılabilir.

insert into DBA.dbo.TblUyelerMYSQL
select *from MYSQL…tblUyeler

Sonuç ;

Code 2 - Resim 17

0 thoughts on “SQL Server’dan Linked Server ile MySQL bağlanma

Leave a Reply

Your email address will not be published. Required fields are marked *