본문 바로가기
DBMS

Mariadb에 Linux unixODBC로 데이터베이스 연동 - 우분투 22.04

by developer's warehouse 2023. 12. 19.

mariadb에 tpcc 테스트를 위해서 unixODBC를 사용하여 연결하기로 하였습니다. tpcc 테스트의 소스가 ODBC로 되어있는 경우 다른 DBMS도 테스트를 할 수 있기 때문에 여러 개의 DBMS들과 NoSQL을 비교해 보기 위해서 unixODBC를 선택하였습니다.

Mariadb에 Linux unixODBC로 데이터베이스 연동 썸네일

mariadb 서버 버전과 OS

우분투 22.04에서 apt-get을 이용하여 설치한 mariadb는 10.6.12 버전입니다.

Server version: 10.6.12-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04

우분투에 UnixODBC 설치

먼저 터미널을 열고 다음 명령어를 입력하여 UnixODBC 모듈을 설치합니다

sudo apt install unixodbc unixodbc-dev

 

UnixODBC를 사용하려면 ODBC 드라이버가 필요합니다. 이 드라이버는 사용하려는 DBMS에서 제공하는 것을 사용하면 됩니다. 저는 이미 설치되어 있었네요.

$ sudo apt install unixodbc unixodbc-dev
[sudo] mongo 암호:
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다... 완료
상태 정보를 읽는 중입니다... 완료
다음의 추가 패키지가 설치될 것입니다 :
  libodbcinst2 unixodbc-common
다음 새 패키지를 설치할 것입니다:
  libodbcinst2 unixodbc unixodbc-common unixodbc-dev
0개 업그레이드, 4개 새로 설치, 0개 제거 및 18개 업그레이드 안 함.
316 k바이트 아카이브를 받아야 합니다.
이 작업 후 2,064 k바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까? [Y/n] Y
받기:1 http://kr.archive.ubuntu.com/ubuntu jammy/main amd64 unixodbc-common all 2.3.9-5 [9,228 B]
받기:2 http://kr.archive.ubuntu.com/ubuntu jammy/main amd64 libodbcinst2 amd64 2.3.9-5 [31.9 kB]
받기:3 http://kr.archive.ubuntu.com/ubuntu jammy/universe amd64 unixodbc amd64 2.3.9-5 [26.8 kB]
받기:4 http://kr.archive.ubuntu.com/ubuntu jammy/main amd64 unixodbc-dev amd64 2.3.9-5 [248 kB]
내려받기 316 k바이트, 소요시간 2초 (151 k바이트/초)
Selecting previously unselected package unixodbc-common.
(데이터베이스 읽는중 ...현재 236132개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack .../unixodbc-common_2.3.9-5_all.deb ...
Unpacking unixodbc-common (2.3.9-5) ...
Selecting previously unselected package libodbcinst2:amd64.
Preparing to unpack .../libodbcinst2_2.3.9-5_amd64.deb ...
Unpacking libodbcinst2:amd64 (2.3.9-5) ...
Selecting previously unselected package unixodbc.
Preparing to unpack .../unixodbc_2.3.9-5_amd64.deb ...
Unpacking unixodbc (2.3.9-5) ...
Selecting previously unselected package unixodbc-dev:amd64.
Preparing to unpack .../unixodbc-dev_2.3.9-5_amd64.deb ...
Unpacking unixodbc-dev:amd64 (2.3.9-5) ...
unixodbc-common (2.3.9-5) 설정하는 중입니다 ...
libodbcinst2:amd64 (2.3.9-5) 설정하는 중입니다 ...
unixodbc (2.3.9-5) 설정하는 중입니다 ...
unixodbc-dev:amd64 (2.3.9-5) 설정하는 중입니다 ...
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.5) ...

 

mariadb ODBC 드라이버 설치

UnixODBC를 사용하려면 mariadb의 ODBC 드라이버가 필요합니다. 이 드라이버는 사용하려는 DBMS 벤더 즉, mariadb에서 제공하는 것을 사용하면 됩니다.

1. mariadb odbc 다운로드

mariadb odbc는 아래 링크에서 버전별, OS별, cpu 별로 확인 후 다운로드 하실 수 있습니다.

https://downloads.mariadb.com/Connectors/odbc/

저의 경우 우분투 22.04 jammy 버전에 cpu는 amd64 아키텍처이므로 다음 주소에서 다운로드하였습니다.

https://downloads.mariadb.com/Connectors/odbc/connector-odbc-3.2.1/mariadb-connector-odbc-3.2.1-ubuntu-jammy-amd64.tar.gz

cpu의 경우 다음의 명령으로 아키텍처를 확인할 수 있습니다.

$ dpkg -s libc6 | grep Arch
Architecture: amd64
Multi-Arch: same

 

다운로드는 wget을 이용하시면 됩니다.

$ wget https://downloads.mariadb.com/Connectors/odbc/connector-odbc-3.2.1/mariadb-connector-odbc-3.2.1-ubuntu-jammy-amd64.tar.gz
--2023-12-19 14:41:44--  https://downloads.mariadb.com/Connectors/odbc/connector-odbc-3.2.1/mariadb-connector-odbc-3.2.1-ubuntu-jammy-amd64.tar.gz
downloads.mariadb.com (downloads.mariadb.com) 해석 중... 104.18.135.24, 104.17.191.14, 2606:4700::6812:8718, ...
다음으로 연결 중: downloads.mariadb.com (downloads.mariadb.com)|104.18.135.24|:443... 연결했습니다.
HTTP 요청을 보냈습니다. 응답 기다리는 중... 200 OK
길이: 4401442 (4.2M) [application/octet-stream]
저장 위치: ‘mariadb-connector-odbc-3.2.1-ubuntu-jammy-amd64.tar.gz’

mariadb-connector-odbc-3.2.1-ubuntu-jamm 100%[================================================================================>]   4.20M  7.95MB/s    / 0.5s

2023-12-19 14:41:45 (7.95 MB/s) - ‘mariadb-connector-odbc-3.2.1-ubuntu-jammy-amd64.tar.gz’ 저장함 [4401442/4401442]

 

2. mariadb odbc 드라이버 압축 해제

tar 명령으로 압축을 해제합니다.

$ tar -xvzf mariadb-connector-odbc-3.2.1-ubuntu-jammy-amd64.tar.gz
mariadb-connector-odbc-3.2.1-ubuntu-jammy-amd64/docs/
mariadb-connector-odbc-3.2.1-ubuntu-jammy-amd64/docs/README
mariadb-connector-odbc-3.2.1-ubuntu-jammy-amd64/docs/maodbc.ini
mariadb-connector-odbc-3.2.1-ubuntu-jammy-amd64/docs/COPYING
mariadb-connector-odbc-3.2.1-ubuntu-jammy-amd64/lib/
mariadb-connector-odbc-3.2.1-ubuntu-jammy-amd64/lib/mariadb/
mariadb-connector-odbc-3.2.1-ubuntu-jammy-amd64/lib/mariadb/plugin/
mariadb-connector-odbc-3.2.1-ubuntu-jammy-amd64/lib/mariadb/plugin/mysql_clear_password.so
mariadb-connector-odbc-3.2.1-ubuntu-jammy-amd64/lib/mariadb/plugin/sha256_password.so
mariadb-connector-odbc-3.2.1-ubuntu-jammy-amd64/lib/mariadb/plugin/caching_sha2_password.so
mariadb-connector-odbc-3.2.1-ubuntu-jammy-amd64/lib/mariadb/plugin/dialog.so
mariadb-connector-odbc-3.2.1-ubuntu-jammy-amd64/lib/mariadb/plugin/client_ed25519.so
mariadb-connector-odbc-3.2.1-ubuntu-jammy-amd64/lib/mariadb/libmaodbc.so
mariadb-connector-odbc-3.2.1-ubuntu-jammy-amd64/lib/mariadb/libmariadb.so.3
mariadb-connector-odbc-3.2.1-ubuntu-jammy-amd64/lib/pkgconfig/
mariadb-connector-odbc-3.2.1-ubuntu-jammy-amd64/lib/pkgconfig/libmaodbc.pc

 

3. mariadb odbc 드라이버 라이브러리 설치

#압축 해제후 lib/mariadb 디렉토리로 이동하여 libmaodbc.so 파일을 install 명령으로 /usr/lib64에 복사한다. 
mariadb-connector-odbc-3.2.1-ubuntu-jammy-amd64/lib/mariadb$ sudo install libmaodbc.so /usr/lib64/

mongo@altibase-KVM:~/mariadbOdbc/mariadb-connector-odbc-3.2.1-ubuntu-jammy-amd64/lib/mariadb$ ls /usr/lib64/
ld-linux-x86-64.so.2  libmaodbc.so

 

4. mariadb odbc 드라이버를 unixODBC에 등록

먼저 MariaDB ODBC 드라이버를 UnixODBC에 등록해야 합니다. 이를 위해 /etc/odbcinst.ini 파일을 수정하고, 다음과 같이 MariaDB ODBC 드라이버에 대한 정보를 추가합니다. 여기서 MariaDB는 드라이버의 이름이고, Description은 드라이버에 대한 설명입니다. Driver는 드라이버 라이브러리 파일의 경로입니다.

 

/etc/odbcinst.ini 파일 내용에 아래 내용 추가

[MariaDB]
Description=MariaDB Connector/ODBC
Driver=/usr/lib64/libmaodbc.so

 

5. mariadb dsn을 odbc.ini에 추가

다음은 DSN 설정으로, MariaDB에 연결하기 위한 데이터 소스 이름(DSN)을 설정해야 합니다. 이를 위해 /etc/odbc.ini 파일을 아래와 같이 수정하고, 다음과 같이 DSN에 대한 정보를 추가합니다.

여기서 mariadb-dsn는 DSN의 이름이고, Description은 DSN에 대한 설명입니다. Driver는 사용할 ODBC 드라이버의 이름입니다. SERVER, USER, PASSWORD, DATABASE, PORT는 MariaDB 서버의 정보입니다. 이 정보는 실제 MariaDB 서버의 정보로 변경해야 합니다.

[mariadb-dsn]
Description=DSN to MariaDB
Driver=MariaDB
SERVER=localhost
USER=tpcc
PASSWORD=tpcc
DATABASE=tpcc
PORT=3306

 

6. unixODBC의 isql로 ODBC 접속 테스트

DSN 설정이 완료되면, UnixODBC의 isql 명령어를 사용하여 MariaDB에 접속 테스트를 할 수 있습니다. 터미널에서 다음 명령어를 입력합니다.

$ isql -v mariadb-dsn
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> show databases;
+-----------------------------------------------------------------+
| Database                                                        |
+-----------------------------------------------------------------+
| information_schema                                              |
| tpcc                                                            |
+-----------------------------------------------------------------+
SQLRowCount returns 2
2 rows fetched
SQL>

 

facebook twitter kakaoTalk kakaostory naver band shareLink