개인활동/잡동사니팁들

freeTDS+unixodbc설치및셋팅(solaris8/SUN)

무늬만엄마 2006. 12. 13. 13:56

UNIXODBC + freeTDS 설치 방법

 

 

이 문서는 Solaris 8 SQL서버 접속을 위해 unixodbc+freetds를 설치 / 설정하기 위한 문서 입니다.

인터넷에서 검색한 자료에 SUN Solaris8 서버와 개발환경에 맞도록 일부 수정하였습니다.

관련 문서가 거의 없는데다가 대부분 linux용이라 없어 고생하였기에 다른 분들에게 도움이 될까해서 올려봅니다.

 

 

설치 전 사항 : 해당 시스템에 gcc, gzip등이 설치되어 있어야 합니다.

현 시스템에서는 gcc 3.4.6를 설치하여 사용하였습니다

gcc3.4.6를 설치하기 위해서는 libiconvlibintl가 설치되어 있어야 합니다.

 

#uname-a

SunOS delmons-na 5.8 Generic_117350-22 sun4u sparc SUNW,Ultra-Enterprise

 

#gcc -v

Reading specs from /user/local/bin/../lib/gcc/sparc-sun-solaris2.8/3.4.6/specs

Configured with:

../configure --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld --disable-nls --disable-libgcj --enable-languages=c,c++

Thread model: posix

gcc version 3.4.6

 

 

1. unixodbc 설치

다운로드사이트 : http://www.unixodbc.org

받은 파일을 /usr/local에 넣고 압축을 풉니다.

2006년 11월 현재 버전은 2.2.12 입니다.

☞ 확장자가 gz인 경우   

# gzip -d *.gz

 

 

☞ 확장자가 tar인 경우   

# tar xvf 파일이름.tar

 

 

(다운받은 파일은 서버설치프로그램/unixodbc 에 위치)

압축을 푼 생성된 디렉토리에서 아래 명령을 실행합니다.

 

unixodbc 설치

 

#./configure --prefix=/usr/local/odbc --sysconfdir=/etc --enable-drivrs=yes  --enable-gui=no

#make

#make install ;

 

* ./configure prefix에서 지정된 디렉토리에 유의하시기 바랍니다.

사용자의 환경에 맞도록 고치셔도 됩니다만, 가능하면 기본 디렉토리를 사용할 것을 권장합니다.

 

 

 

2. freeTDS 설치

다운로드사이트 : http://www.freetds.org

받은 파일을 /usr/local에 넣고 압축을 풉니다.

2006년 11월 현재 버전은 0.64 입니다.

(다운받은 파일은 서버설치프로그램/freetds 에 위치)

압축을 푼 생성된 디렉토리에서 아래 명령을 실행합니다.

 

freetds 설치

 

#./configure --prefix=/usr/local/freetds --with-unixodbc=/usr/local/odbc

#make

#make install ;

 

* ./configure prefix에서 지정된 디렉토리에 유의하시기 바랍니다.

사용자의 환경에 맞도록 고치셔도 됩니다만, 가능하면 기본 디렉토리를 사용할 것을 권장합니다.

 

 

3. freeTDS의 환경을 설정합니다.

 

1> freetds.conf 수정 (/usr/local/etc/freetds.conf)

 

#vi freetds.conf

.....

.....

 

[E1Test]

        host = xxx.xxx.xxx.151

        port = 1433

        tds version = 4.2

 

l       freetds의 이전버전에 대한 설치문서를 찾다보면 /usr/local/freetds/ interfaces PWD 파일을 수정하라는 내용이 있으나, 현재버전(0.64)에서는 freetds.conf 파일만 수정하면 됩니다.

l       tds version은 본래 SQL Server 2000 이상에서는 8.0을 기술해야 하나, 한글 사용시 문제가 있는 경우(99% --;;) 4.2를 사용해야 합니다. 프로그램 내에서도 4.2를 사용하도록 합니다.

 

 


4. ODBC 환경을 설정합니다.

 

/usr/local/unixODBC-2.2.12/exe/odbcinst 를 이용해 드라이버를 등록해 줍니다..

odbcinst.ini를 만들때 편집기를 통해 파일을 만들면 안되며 반드시 odbcinst 프로그램을 이용해야 합니다. 약간의 버그가 있으니 실패 시 기존 파일들을 깨끗이 지우고 다시 하십시오.

 

* 드라이버 등록 및 DSN(Data Source Name) 세팅

 

tds.driver.template 드라이버 파일의 설정

 

#vi tds.driver.template

[FreeTDS]

Description     = v0.64 with protocol v4.2

Driver          = /usr/local/freetds/lib/libtdsodbc.so

 

 

#odbcinst -i -d -f tds.driver.template

 

 

tds.datasource.template  DSN 설정

 

#vi tds.datasource.template

[FreeDSN]

Driver          = FreeTDS

Description     = IDC 151 svr

Trace           = No

Servername      = E1Test

Database        = DB_REPAIR

 

#odbcinst -i -s -f tds.datasource.template

 

 

/etc/odbcinst.ini 화일 확인

 

#vi /etc/odbcinst.ini

[ORACLE]

Description             = Easysoft ODBC Oracle Driver

Driver          = /usr/local/easysoft/oracle/libesoracle.so

Setup           = /usr/local/easysoft/oracle/libesoraclesetup.so

FileUsage               = 1

 

[FreeTDS]

Description     = FreeTDS unixODBC Driver

Driver          = /usr/local/freetds/lib/libtdsodbc.so

UsageCount      = 1

 

 

* odbcinst -i -s -f tds.datasource.template 을 여러번 실행하면 동일한 DSN에 대해서는 UsageCount가 1씩 증가합니다. 동작에는 크게 지장이 없습니다.

 

 

/etc/odbc.ini(혹은 /.odbc.ini) 화일 확인

 

#vi /etc/odbc.ini

 

[ODBC Data Sources]

FreeDSN   = MS SQL Server manaement DSN

 

[FreeDSN]

Driver  = FreeTDS                                        <- odbcinst.ini 파일에서 선언한 이름

Description     = SQL Server sample database

Trace   = No

Servername  = E1Test                                 <- 나중에 사용할  서버명

Database        = DB-REPAIR                        <- SQL 서버 DB 명

FileUsage       = 1

 

[FreeTDS]

Description     = v0.64 with protocol v8.0

Driver  = /usr/local/freetds/lib/libtdsodbc.so

 

 

5. 환경변수를 설정해 줍니다.

 

csh인 경우

 

#vi /.cshrc

setenv SYBASE /usr/local/freetds

setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:$SYBASE/lib:/usr/local/odbc/lib

 

 

sh / ksh / bsh인 경우

 

#vi /.profile

export SYBASE=/usr/local/freetds

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SYBASE/lib:/usr/local/odbc/lib

 

* 환경변수를 제대로 적용 설정하기 위해서는 해당 쉘을 다시 시작해야 합니다.

*  SQL 서버인데 SYBASE가 왜 등장하는지 궁금하신 분들을 위해...

   SQL Server의 전신이 SYBASE였답니다. ^^;; 자세한 히스토리는 인터넷 검색을...

   기분 나빠도 걍 쓰시면 됩니다.

 

 


6. 접속여부를 테스트 합니다.

 

 

freeTDS 의 테스트

 

/usr/local/bin/tsql -S E1Test -U E1TEST -P E1TEST

/usr/local/bin/tsql -S 'E1Test' -U 'E1TEST' -P 'E1TEST'

/usr/local/bin/tsql -H E1Test -p 1433 -U E1TEST -P E1TEST

 

 

Test tsql of FreeTDS, e.g.:

 

locale is "C"

locale charset is "646"

1> use Northwind

2> go

1> select * from mies

2> go

aap

mies

1>quit

 

unixodbc 에서 테스트

 

/usr/local/odbc/bin/isql -v FreeDSN 'E1TEST' 'E1TEST'

 

 

 

Test isql of unixODBC:

 

+---------------------------------------+

| Connected! |

| |

| sql-statement |

| help [tablename] |

| quit |

| |

+---------------------------------------+

SQL> select * from mies;

+-----------+

| aap |

+-----------+

| mies |

+-----------+

SQLRowCount returns 1

1 rows fetched

SQL> quit

 

 

 

여기까지 동작되면 제대로 설치 및 설정이 완료된 것입니다.

 

'개인활동 > 잡동사니팁들' 카테고리의 다른 글

reSIProcate 설치(1) - Solaris 10  (0) 2007.05.29
버클리 DB 설치법  (0) 2007.04.20
close_wait time 변경  (0) 2007.04.03
Bind error 방지하기  (0) 2007.04.03
gcc 컴파일 옵션들  (0) 2006.12.13