리눅스에서 pyodbc 이용해서 mssql과 연동하기

Nov 27, 2014/Jun 15, 2017

일반적으로 python-mssql 라이브러리들은 윈도우를 기반으로 동작한다. 이때 pyodbc나 pymssql 들은 내부적으로 윈도우에 설치된 SqlClient 등의 라이브러리에 의존하게 된다. 

문제 : 리눅스 환경에서는 SqlClient 와 같은 라이브러리가 없는데 어디에 의존해야 할까?

pyodbc 를 기준으로 설명하자면, 리눅스 환경. CentOS, Ubuntu, MAC OSX 등의 환경에서는 unixODBC 와 FreeTDS 라는 라이브러리가 필요하다.

unixODBC 

– non winodws platform 상에서 표준 ODBC를 사용할수 있도록 해주는 라이브러리. 

– 설치법 

yum install unixODBC unixODBC-devel  
apt-get install unixodbc-dev unixodbc-bin unixodbc  

FreeTDS 

– 유닉스, 리눅스를 위한 라이브러리 집합으로 MS SQL  Server, Sybase 데이터베이스와의 통신을 위한 라이브러리 

– TDS(Tabular Data Stream)프로토콜 에 대한 오픈소스 구현체이다. 

– 설치법 :  ftp://ftp.freetds.org/pub/freetds/stable/freetds-stable.tgz  다운로드후, 다음의 작업 수행.

설치시, 만약 unixODBC 를 먼저 설치했다면, ./configure 하는 부분에서 다음과 같이 실행해 준다.

설치후 해야할 일

– 두개의 파일을 설정해야 하는데 /etc/odbcinst.ini, /etc/obbc.ini

/etc/odbcinst.ini 에서는 다음과 같이 마지막줄에 FreeTDS 추가할 것을 명시해준다. 즉, 여기서는 드라이버를 FreeTDS 를 쓰겠다고 지정하는것이다. 

– /etc/odbc.ini 에서는 실제 연결할 데이터베이스에 대한 정보를 입력한다. 

자, 이제 연동하는 법

[DB_PRM]
host=10.10.1.116  
port=1443  
tds version=7.0  
dump file=/tmp/freetds.log  

#dev  #freetds  #MSSQL  #pyodbc  #Python  #unixODBC