UNIXODBC + freeTDS 설치 방법
이 문서는 Solaris 8에 SQL서버 접속을 위해 unixodbc+freetds를 설치 / 설정하기 위한 문서 입니다.
인터넷에서 검색한 자료에 SUN Solaris8 서버와 개발환경에 맞도록 일부 수정하였습니다.
관련 문서가 거의 없는데다가 대부분 linux용이라 없어 고생하였기에 다른 분들에게 도움이 될까해서 올려봅니다.
설치 전 사항 : 해당 시스템에 gcc, gzip등이 설치되어 있어야 합니다.
현 시스템에서는 gcc 3.4.6를 설치하여 사용하였습니다.
gcc3.4.6를 설치하기 위해서는 libiconv와 libintl가 설치되어 있어야 합니다.
#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 - /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 |