RSS Feed

python ile mssql sunucu bağlantısı

August 3, 2009 by Oğuz Yarımtepe

NEU öğrenci veri tabanı zamanında MsSQL sunucu üzerinde inÅŸa edildiÄŸinden benim de yazacağım uygulamada bir ÅŸekilde ona baÄŸlanmam gerekti. Åžu aralar MsSQL den MySQL’e göç devam etse de ÅŸimdilik pek haz etmesem de sevgili Ms sunucu ile konuÅŸmam gerekecek.

Pardus altında Ms sunucuya veri tabanı bağlantısı yapabilmek için FreeTDS  ve unixODBC ikilisini kullandım. unixODBC, Unix için ODBC arayüzü olarak geçen ve Pardus 2008.2 ile varsayılan kurulu gelen bir paket. Ayar dosyalarına bakmak için

$ odbcinst -j
unixODBC 2.2.12
DRIVERS…………: /etc/unixODBC/odbcinst.ini
SYSTEM DATA SOURCES: /etc/unixODBC/odbc.ini
USER DATA SOURCES..: /home/oguz/.odbc.ini

Varsayılan olarak odbcinst.ini ve odbc.ini dosyaları boÅŸ geliyor Pardus’ta. Birazdan odbc.ini’yi elliyor olacağız. Önce FreeTDS kurulumu yapmak gerekiyor. Pardus depolarında henüz olmayan bir paket kendileri. Bu durumda her fani gibi kaynağını çekip derleyip kurmamız gerekiyor. http://www.freetds.org/ adresine girdiÄŸimizde kararlı sürümünü indirip tar.gz dosyasını açtıktan sonra aÅŸağıdaki adımları takip etmek yeterli oluyor kurulum için.

$ ./configure –enable-msdblib

$ make

$ sudo make install

Kurulum varsayılan olarak /usr/local/ altına dosyalarını yerleştiriyor. /usr/local/etc/freetds.conf dosyasındaki ilgili alanı şu şekilde değiştiriyoruz:

[egServer70]
·   host = sunucu ip numarası
·   port = 1433
·   tds version = 8.0

Bu dosya içerisindeki ; ile başlayan ve işimize yarayacağını düşündüğümüz satırları da açabiliriz. Ben tds version kısmını [gloabal] altında 5.0 olarak değiştirip başındaki noktalı virgülü kaldırmışım. Ayrıca log satırını da açmışım.

sonra da odbc.ini dosyasını elliyoruz:

[dsn]
Description = MSSQLSERVER
Driver = /usr/local/lib/libtdsodbc.so
Servername = egServer70
Database = baglanilacak veri tabanı adı

Åžimdi de pyodbc kullanarak bu iÅŸleri kullanabileceÄŸimiz hale getirelim.

In [1]: import pyodbc

In [2]: pyodbc.connect(‘DSN=dsn;UID=oguz;PWD=.pass:parolaniz. .’)
Out[2]: <pyodbc.Connection object at 0xb770f200

Burada en kritik nokta sevgili Ms sunucunun parolayi .pass:bilmemne. . formatinda alıyor olması. Bunu onca uÄŸraÅŸtan sonra hala bir giriÅŸ sorunu yaÅŸarken, bir de windows bilen birileriyle bakalım ÅŸu olaya deyince öğrendim. Cahillik zor ÅŸey vesselam 🙂


2 Comments »

  1. Sitede yukarıda ki home ve about linkine tıkladığımda database’e eriÅŸilemiyor hatası alıyorum. bir de oraya baÄŸlanalım 😛 ÅŸaka bir yana kolay gelsin.

  2. Oğuz Yarımtepe says:

    O sırada Dreamhost veri tabanına erişimde bir sıkıntı oluyor olabilir. Genelde pek olan bir durum değil.

Leave a Reply

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