출처: unixodbc 설정… (pchero21.com)
기존에 Windows 환경에서만 적용되던 모듈을 Unix로 컨버팅해야하는 경우가 생겼다.
대부분의 소스는 이미 Unix 환경에서 사용이 가능하도록 컨버팅이 되어 있었지만, 단하나… ODBC와 관련된 부분이 있었다.
이걸 어떻게 해야하나…
시간은 없었고..
결론은 unixodbc를 사용하고 소스는 원본을 최대한 손을 안대는 방향으로 하기로 했다.
아래의 환경에서 작업을 구성했다.
작업 환경
OS : HP-UX B.11.31 U ia64
Compiler : HP C/aC++ B3910B A/06.27
unixodbc : unixODBC-2.3.1
freetds : freetds-0.91
unixodbc 컴파일
unixodbc 사이트에 들어가서 최신의 odbc package(unixODBC-2.3.1)을 내려받아 설치한다.
freetds 컴파일
freetds 사이트에 들어가서 최신의 freetds package(stable 버전..)을 내려받아 설치한다.
완성된 설정 내용
/etc/odbc.ini
[TEST]
Driver = FreeTDS
Description = MSSQL Setting..
Servername = ODBC_TEST
Trace = No
Database = 4.2
Port = 1433
/etc/odbcinst.ini
[FreeTDS]
Description = MSSQL Setting..
Driver = /usr/local/freetds/lib/libtdsodbc.so
UsageCount = 1
참고 사이트들..
참고 : http://dirk.net/2010/09/18/sql-server-with-freetds-unicode-data-error/
참고 : http://stackoverflow.com/questions/2922829/freetds-and-unixodbc-character-converting
참고 : http://blog.naver.com/PostView.nhn?blogId=bebas&logNo=80118437810
참고 : http://stackoverflow.com/questions/3261909/build-32bit-on-64-bit-linux-using-a-configure-script
참고 : http://h30499.www3.hp.com/t5/Languages-and-Scripting/freeTDS-on-HP-UX-11-31/td-p/4671681
참고 : http://www.freetds.org/userguide/odbcdiagnose.htm
참고 : http://kldp.org/node/51717
----------------------------------------------------------------------------------------------------------------------------------
unixodbc 설치방법: [GOLDILOCKS] unixODBC 연동하기 (tistory.com)
연동환경
서버 |
OS |
CentOS Linux release 7.2.1511 |
DATABASE |
Goldilocks 3.1.0 r23226 |
|
클라이언트 |
OS |
CentOS Linux release 7.2.1511 |
UNIX ODBC |
unixODBC v2.3.4 |
unixODBC DRIVER MANAGER 다운로드
[ 다운로드 방법 1 ]
1. http://www.unixodbc.org/ 사이트에 접속합니다.
2. Download 탭을 클릭한 뒤, tar.gz 압축파일을 다운로드 합니다.
3. 다운로드한 압축파일을 클라이언트 OS로 전송합니다.
[ 다운로드 방법 2 ]
1. 클라이언트 OS 에서 wget 명령어를 사용하여 다운로드 합니다.
* SHELL> wget http://www.unixodbc.org/unixODBC-2.3.4.tar.gz
$ wget http://www.unixodbc.org/unixODBC-2.3.4.tar.gz
--2017-09-13 06:56:49-- http://www.unixodbc.org/unixODBC-2.3.4.tar.gz
Resolving www.unixodbc.org (www.unixodbc.org)... 87.106.19.214
Connecting to www.unixodbc.org (www.unixodbc.org)|87.106.19.214|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1830660 (1.7M) [application/x-gzip]
Saving to: ‘unixODBC-2.3.4.tar.gz’
100%[===========================================================>] 1,830,660 7.25KB/s in 5m 59s
2017-09-13 07:02:50 (4.98 KB/s) - ‘unixODBC-2.3.4.tar.gz’ saved [1830660/1830660]
unixODBC DRIVER MANAGER 설치
* 설치전 사전 정보입니다.
설치 계정 |
centos |
설치 경로 |
/home/centos/unixODBC |
gcc 버전 |
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11) |
1. tar.gz 파일을 압축해제 합니다.
2. 압축해제한 경로로 들어갑니다.
3. unixODBC 를 설치합니다.
$ tar xzf unixODBC-2.3.4.tar.gz
$ cd unixODBC-2.3.4
$ ./configure --prefix=/home/centos/unixODBC
$ make
$ make install
unixODBC DRIVER MANAGER 연동
1. 설치한 경로로 들어갑니다.
2. bin 파일로 들어갑니다.
3. odbcinst 실행파일을 수행하여 unixODBC DRIVER MANAGER 정보를 확인합니다.
$ cd /home/centos/unixODBC
$ cd bin
$ ./odbcinst -j
unixODBC 2.3.4
DRIVERS............: /home/centos/unixODBC/etc/odbcinst.ini
SYSTEM DATA SOURCES: /home/centos/unixODBC/etc/odbc.ini
FILE DATA SOURCES..: /home/centos/unixODBC/etc/ODBCDataSources
USER DATA SOURCES..: /home/centos/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
SQLLEN Size 가 4 인 경우 |
libgoldilockscs-ul32.so |
SQLLEN Size 가 8 인 경우 |
libgoldilockscs-ul64.so |
4. USER DATA SOURCES 의 경로에 Goldilocks ODBC 정보를 등록합니다.
* 테스트 시의 IP 및 PORT 입니다.
Server IP |
192.168.0.50 |
Database Listener Port |
22581 |
$ cat /home/centos/.odbc.ini
[ODBC Data Sources]
GoldilocksODBC = Goldilocks ODBC Driver
[GoldilocksODBC]
# DRIVER : DATABASE ODBC DRIVER
# HOST : DATABASE SERVER IP
# PORT : DATABASE LISTENER PORT
DRIVER = /home/centos/goldilocks_home/lib/libgoldilockscs-ul64.so
HOST = 192.168.0.50
PORT = 22581
unixODBC 연결 테스트
1. unixODBC 의 isql 명령어를 사용하여 Goldilocks 에 접속합니다.
$ cd /home/centos/unixODBC/bin
$ ./isql -v GoldilocksODBC TEST test
SQL>
-----------------------------------------------------------------------------------------------------------------------------------
freetds 설치가이드: Oracle Linux 7.6에 FreeTDS 설치 가이드 :: 내맘대로긍정 (tistory.com)
OS환경 : Oracle Linux 7.6, Windows Server 2012 (64bit)
DB 환경 : Oracle Database 12.1.0.2, SQL Server 2012
방법 : FreeTDS 설치 가이드
FreeTDS 다운로드
FreeTDS는 이기종간 연결을 위한 유닉스와 리눅스용 라이브러리의 집합임
http://www.freetds.org/index.html 공식홈페이지 접속
오른쪽에 있는 Stable Release (1.2.3)을 눌려서 파일 다운로드 후 서버에 업로드
FreeTDS 설치
# tar -xvf freetds-1.2.3.tar.gz
# cd freetds-1.2.3/
# ./configure -prefix=/usr/local/freetds -enable-msdblib -with-gnu-ld
# make
# make install
make 시 warning: ~~ 이 발생해도 무시하고 make install 진행
freetds.conf 파일 설정
아래 내용 최하단에 추가
# vi /usr/local/freetds/etc/freetds.conf
[ms2012]
host = 192.168.137.12 # MsSQL Server IP Address
port = 1433 # MsSQL Server Port
tds version = 8.0
client charset = UTF-8
freetds tsql 정상 동작 확인
예시
# /usr/local/freetds/bin/tsql -S <freetds.conf에서 정한이름> -U 계정 -P '패스워드'
실사용
# /usr/local/freetds/bin/tsql -S ms2012 -U sa -P 'dnls1!'
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1> select * from table_1;
2> go
cola
1
1
(2 rows affected)
1> quit
1, 2, 3, 4.... 계속숫자가 올라가지 않고 1> 에서 멈춰서 텍스트를 입력할 수 있으면 정상
테이블 조회도 정상적으로 가능함
'언어 > Database' 카테고리의 다른 글
SQL Server 2017 on Linux 설치 (0) | 2021.12.31 |
---|---|
리눅스 unixODBC FreeTDS 설치 (MSSQL) (0) | 2021.02.20 |
Firebird-3.0.7.33374-1_Win32 (0) | 2021.01.23 |
dbeaver-ce-7.3.2-win32.win32.x86_64 (0) | 2021.01.23 |
How to install MongoDB silently on Windows Server 2016 (0) | 2020.12.23 |