포스팅에 들어가며
지난 번 포스팅 때 ODBC 관련해서 많은 이론적인 부분과 왜써야하고 어떻게 설치해야하는가에 대해서 이야기를 했다. 이번에는 바로 기술적인 부분으로 들어가도록 하자. 이해하고 한번 설정해보면 크게 어렵지 않지만 한번도 해보지 않았다면 막막할 수 있다. 천천히 따라해보자. 혹시라도 ODBC에 대한 이론적인 부분이라던지 설치에 대한 부분이 궁금하신 분은 아래 포스팅을 참고하고 이번 포스팅을 보면 될 것이다.
Step 1. ODBC Manager 정상 설치 확인
# isql --version // ODBC Manager 드라이버 확인
unixODBC 2.3.0
#odbcinst -j // ODBC Manager 정보 확인(버전 역시 확인 가능)
unixODBC 2.3.0
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
Step 2. ODBC 드라이버 정상 설치 확인
# cat /etc/odbcinst.ini // ODBC 드라이버가 정상 설치되면 해당 파일에 아래와 같이 자동으로 드라이버 정보 입력됨
[ODBC Driver 11 for SQL Server]
Description=ODBC Driver 11 for SQL Server
Driver=/usr/local/lib64/libmsodbcsql-11.0.so.2270.0
Threading=1
UsageCount=1
#ls -lrt /usr/local/lib64/libmsodbcsql-11.0.so.2270.0 // 해당 경로에 드라이버 확인
-rwxr-xr-x. 1 root root 1757680 2017-09-18 22:30 /usr/local/lib64/libmsodbcsql-11.0.so.2270.0
여기서 잠깐
ODBC 설정을 위해서는 두 가지 파일을 설정해주어야 한다.바로 odbc.ini와 odbcinst.ini 파일이다. odbcinst.ini 파일에는 드라이버 정보가 들어간다. 현재는 우리가 msodbc를 설치했기 때문에 msodbc에 대한 드라이버 정보가 들어가있는 상태이고 만약 mysql이나 다른쪽 odbc를 설치하게 되면 그에 해당하는 값이 추가된다. 즉, 드라이버가 2개 설치됐고 그 2개를 사용하려 한다면 설정값이 2개여야 된다는 말이다. 그리고 이 정보는 odbc.ini가 가져가게 된다.
앞서 설명한 것 처럼 odbc.ini는 odbcinst.ini의 드라이버 정보를 가지고 오고 또한 접속하려는 서버(여기서는 mssql 서버)의 정보가 들어간다. 따라서 이 파일은 '나는 이런 드라이버를 쓰고있고 어디에 붙을꺼다'라는 정보를 가지고 있는셈이다. 그럼 설정 파일을 살펴보자.
Step 3. odbc.ini odbcinst.ini 파일 설정
# cat /etc/odbcinst.ini
[ODBC Driver 11 for SQL Server]
Description=Microsoft ODBC Driver 11 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0
Threading=1
UsageCount=1
먼저 ODBC 드라이버 정보가 들어간 odbcinst.ini 파일을 살펴보자.
[ODBC driver 명이 된다. 중요하다. 구분하기 쉽게 사용해도 상관없다. 하지만 odbc.ini에 드라이버명에는 반드시 이 이름이 들어가야 한다.]
Description : 말그대로 이 드라이버에 대한 설명 정도라고 생각하면 된다. 영향을 주진 않지만 관리를 위해 적는다.
Driver : 중요하다. 불러올 드라이버의 경로와 함께 풀네이밍으로 적어준다. 해당 드라이버를 쓰는 것이기 때문이다.
# cat /etc/odbc.ini
[dbtest]
Driver=ODBC Driver 11 for SQL Server
Description=My Sample ODBC Database Connection
Trace=Yes
Server=192.168.1.123
Port=1433
Database=master
그 다음은 odbc.ini에 대한 설명이다.
[Data Source Name이라고 해서 DSN이라고 부른다. 중요하다. 아래 설정한 정보를 전부 가지고 있는 이름이다.]
Driver : 역시 중요하다. odbcinst.ini에서 [ ] 에 들어갔던 이름을 똑같이 적어주어야한다.
Description : 상동
Trace : Trace 여부
Server : 서버(여기선 mssql 서버) IP
Port : 보통 mssql의 기본 포트는 1433이다. 만약 1433포트를 쓴다면 생략해도 무관하다. 기본 포트 외에 다른 포트를 사용할 경우 적어준다.
Database : 접속하고자 하는 Database명을 적어준다.
Step 4. isql을 통한 접속 확인
# isql [옵션] [DSN] [USERNAME] [PASSWORD]
자 기본적으로 이렇게 사용할 수 있다. 물론 odbc 파일에 username과 password 설정도 가능하다. 하지만 유동적으로 사용할 수 있도록 직접 적고 테스트해본다. 옵션의 경우 여러 옵션이 있지만 이건 접속 가능 테스트만 할 것이기 때문에 기본적으로 -v 옵션을 쓴다. verbose로써 오류가 날 경우 자세히 보여준다. username은 mssql 접속 user명이되겠고 password 역시 접속 유저의 password를 적으면 된다.
# isql -v dbtest sa "##test123"
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> select count(*) from sysobjects; // mssql objects 갯수 확인 query
+------------+
| |
+------------+
| 2276 |
+------------+
SQLRowCount returns 0
1 rows fetched
포스팅을 마치며
사실 ODBC를 통한 db connection은 설정이 전부이다. 얼마나 정확히 이해하고 해당 값들을 설정하는지에 따라 connection 여부가 결정된다. OS나 이미 경력이 있으신분들은 당연한 이야기 일지 몰라도 위에 어떤 값은 정확히 어디와 같아야하고 어디는 무슨 값이 들어가는지를 몰라 한참을 해멨다. 사실 ODBC파일 설정도 마찬가지지만 oracle 설정을 통해 접속하는 것 또한 설정이 중요하다. 이번편을 2편으로 끝내려고 했는데 정확한 이해를 돕기 위해 작성하다보니 3편으로 나눠가는게 편할 것 같아 3편으로 나눠진행해야 할 것 같다. 오늘은 ODBC manager와 ODBC driver 설정 및 ODBC manager를 통한 접속까지만 이해하자. 다음편에서는 Oracle에서 설정해둔 해당 ODBC로의 Connection을 끝으로 해당 포스팅은 끝내도록 하겠다.
제 블로그의 내용이 도움이 되셨나요?
여러분의 공감과 댓글이 아잇티에게 큰 힘이됩니다 :)
▼▼▼▼▼▼▼▼▼▼▼