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 :P ş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 *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>