• 27-02-2016, 04:11:59
    #1
    Mysql to MSSQL aktarım, mysql den Mssqle aktarma

    aşağıda anlatacağım işlemleri yapabilmek için Sunucuya tam erişim hakkınız olması lazım

    Sunucunuzda Mysql ODBC Driver'in yüklü olması lazım, yüklü değilse https://dev.mysql.com/downloads/connector/odbc/ adresinden indiriyoruz ve kuruyoruz.







    Control Panel\All Control Panel Items\Administrative Tools dan veya direkt olarak %windir%\system32\odbcad32.exe dan ODBC ayarlarına gidiyoruz.
    SYSTEM DSN Sekmesinden mysql için DSN ekliyoruz (bu sadece test amaçlıdır ve Driver ismini öğrenmemize yarayacak).

    Microsoft SQL Server Managament Studio'yu Açıyoruz New Query Kısmından

    EXEC master.dbo.sp_addlinkedserver 
    @server = N'MYSQL', 
    @srvproduct=N'MySQL', 
    @provider=N'MSDASQL', 
    @provstr=N'DRIVER={MySQL ODBC 5.3 Driver adı önemli}; SERVER=localhost; _
    	DATABASE=databaseAdi; USER=useradi; PASSWORD=parolamız; OPTION=3'
    Sorgusunu çalıştırıyoruz, gerekli alanlara dikkat.
    benim sunucuda şu kodu çalıştırdım.

    EXEC master.dbo.sp_addlinkedserver 
    @server = N'MYSQL', 
    @srvproduct=N'MySQL', 
    @provider=N'MSDASQL', 
    @provstr=N'DRIVER={MySQL ODBC 5.3 ANSI Driver}; SERVER=localhost; _
    	DATABASE=test; USER=root; PASSWORD=123456789; OPTION=3'
    Aşğıdaki resimdeki gibi MYSQL Sekmesinden Catalog'a tıkladığınızda mysql'de bulunan veritabanlarınız listelenmedi ise birşeyleri yanlış yapmışsınızdır, girdiğiniz parola driver v.b bilgileri gözden geçirin.



    Şimdi sıra geldi mysql deki veritabanınızda yer alan tablolardan veri almaya.
    aktarım kodu şu şekilde olacak
    use mssqlveritabaniAdi
    SELECT * INTO dbo.tabloadi
    FROM openquery(MYSQL, 'SELECT * FROM mysqlVeritabaniAdi.tabloAdi')
    Eğer MSSQL veritabanınızda ilgili tablo yoksa merak etmeyin, sorgu sonucunda ilgili tablo kendisi oluşacak.
    bu sorgunun tek handikapı ID gibi Is IdenTity değerleri oluşmaz, onuda tasarım kısmından kendiniz yaparsınız.

    Şu kodla da ilgili mysql tablosundaki verileri okuyabilirsiniz
    SELECT TOP 500 * FROM openquery(MYSQL, 'SELECT * FROM veritabaniAdi.TabloAdi')

    Böylece büyük bir zahmetden kurtulduk.
  • 12-06-2016, 01:30:25
    #2
    bu kadar kasmaya gerek yok Navicat Premium kullan istediğin tüm db leri okur ve çevirir