Microsoft ODBC Driver for SQL Server 설치(Linux)

이 항목에서는 Linux 기반 Microsoft ODBC Driver for SQL Server를 설치하는 방법에 대해 설명합니다. SQL Server용 선택적 명령줄 도구(bcpsqlcmd)와 unixODBC 개발 헤더에 대한 지침도 포함되어 있습니다.

이 문서에서는 bash 셸에서 ODBC 드라이버를 설치하기 위한 명령을 제공합니다. 패키지를 직접 다운로드하려면 ODBC Driver for SQL Server 다운로드를 참조하세요.

Microsoft ODBC 18

다음 섹션에서는 다양한 Linux 배포용 bash 셸에서 Microsoft ODBC Driver 18을 설치하는 방법을 설명합니다. 지원되는 배포판은 Alpine Linux, Debian, RHEL(Red Hat Enterprise Linux), Oracle Linux, SLES(SUSE Linux Enterprise Server) 및 Ubuntu입니다.

case $(uname -m) in
    x86_64)   architecture="amd64" ;;
    arm64)   architecture="arm64" ;;
    *) architecture="unsupported" ;;
esac
if [[ "unsupported" == "$architecture" ]];
then
    echo "Alpine architecture $(uname -m) is not currently supported.";
    exit;
fi

#Download the desired package(s)
curl -O https://download.microsoft.com/download/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/msodbcsql18_18.3.3.1-1_$architecture.apk
curl -O https://download.microsoft.com/download/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/mssql-tools18_18.3.1.1-1_$architecture.apk

#(Optional) Verify signature, if 'gpg' is missing install it using 'apk add gnupg':
curl -O https://download.microsoft.com/download/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/msodbcsql18_18.3.3.1-1_$architecture.sig
curl -O https://download.microsoft.com/download/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/mssql-tools18_18.3.1.1-1_$architecture.sig

curl https://packages.microsoft.com/keys/microsoft.asc  | gpg --import -
gpg --verify msodbcsql18_18.3.3.1-1_$architecture.sig msodbcsql18_18.3.3.1-1_$architecture.apk
gpg --verify mssql-tools18_18.3.1.1-1_$architecture.sig mssql-tools18_18.3.1.1-1_$architecture.apk

#Install the package(s)
sudo apk add --allow-untrusted msodbcsql18_18.3.3.1-1_$architecture.apk
sudo apk add --allow-untrusted mssql-tools18_18.3.1.1-1_$architecture.apk

참고 항목

Alpine을 지원하려면 드라이버 버전 17.5 이상이 필요합니다.

이전 버전

다음 섹션에서는 Linux에서 이전 버전의 Microsoft ODBC 드라이버를 설치하기 위한 지침을 제공합니다. 다음 드라이버 버전에 대한 설명이 제공됩니다.

Microsoft ODBC 17

다음 섹션에서는 다양한 Linux 배포용 bash 셸에서 Microsoft ODBC Driver 17을 설치하는 방법을 설명합니다.

Important

잠시 사용 가능했던 v17 msodbcsql 패키지를 설치한 경우 msodbcsql17 패키지를 설치하기 전에 해당 패키지를 제거해야 합니다. 이를 통해 충돌을 방지할 수 있습니다. msodbcsql17 패키지는 msodbcsql v13 패키지와 병렬로 설치할 수 있습니다.

#Download the desired package(s)
curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.10.5.1-1_amd64.apk
curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/mssql-tools_17.10.1.1-1_amd64.apk

#(Optional) Verify signature, if 'gpg' is missing install it using 'apk add gnupg':
curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.10.5.1-1_amd64.sig
curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/mssql-tools_17.10.1.1-1_amd64.sig

curl https://packages.microsoft.com/keys/microsoft.asc  | gpg --import -
gpg --verify msodbcsql17_17.10.5.1-1_amd64.sig msodbcsql17_17.10.5.1-1_amd64.apk
gpg --verify mssql-tools_17.10.1.1-1_amd64.sig mssql-tools_17.10.1.1-1_amd64.apk

#Install the package(s)
sudo apk add --allow-untrusted msodbcsql17_17.10.5.1-1_amd64.apk
sudo apk add --allow-untrusted mssql-tools_17.10.1.1-1_amd64.apk

참고 항목

Alpine을 지원하려면 드라이버 버전 17.5 이상이 필요합니다.

ODBC 13.1

다음 섹션에서는 다양한 Linux 배포용 bash 셸에서 Microsoft ODBC Driver 13.1을 설치하는 방법을 설명합니다.

curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
curl https://packages.microsoft.com/config/debian/8/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install msodbcsql
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y apt-get install mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo apt-get install unixodbc-dev

ODBC 13

다음 섹션에서는 다양한 Linux 배포용 bash 셸에서 Microsoft ODBC Driver 13을 설치하는 방법을 설명합니다.

curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
sudo yum update
sudo yum remove unixODBC #to avoid conflicts
sudo ACCEPT_EULA=Y yum install msodbcsql-13.0.1.0-1 mssql-tools-14.0.2.0-1
sudo yum install unixODBC-utf16-devel #this step is optional but recommended*
#Create symlinks for tools
sudo ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd
sudo ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp

오프라인 설치

인터넷에 연결되지 않은 컴퓨터에 Microsoft ODBC 드라이버 13을 설치해야 하는 경우 패키지 종속성을 수동으로 해결해야 합니다. Microsoft ODBC Driver 13에는 다음과 같은 직접 종속성이 있습니다.

  • Ubuntu: libc6 (>= 2.21), libstdc++6 (>= 4.9), libkrb5-3, libcurl3, openssl, debconf (>= 0.5), unixodbc (>= 2.3.1-1)
  • Red Hat: glibc, e2fsprogs, krb5-libs, openssl, unixODBC
  • SUSE: glibc, libuuid1, krb5, openssl, unixODBC

위의 각 패키지는 차례로 자체의 종속성이 있으며, 시스템에 해당 종속성이 있을 수도 있고 없는 경우도 있습니다. 이 문제에 대한 일반적인 해결 방법은 Red Hat, UbuntuSUSE의 배포 패키지 관리자 설명서를 참조하세요.

또한 모든 종속 패키지를 수동으로 다운로드하여 설치 컴퓨터에 함께 배치한 다음 각 패키지를 차례로 수동으로 설치하여 Microsoft ODBC 드라이버 13 패키지로 마무리하는 것이 일반적입니다.

sudo yum install glibc e2fsprogs krb5-libs openssl unixODBC unixODBC-devel #install dependencies
sudo rpm -i  msodbcsql-13.1.X.X-X.x86_64.rpm #install the Driver

ODBC 11

다음 섹션에서는 Linux 기반 Microsoft ODBC 드라이버 11을 설치하는 방법에 대해 설명합니다. 드라이버를 사용하려면 먼저 unixODBC 드라이버 관리자를 설치합니다. 자세한 내용은 드라이버 관리자 설치를 참조하세요.

설치 단계

Important

이러한 지침은 Red Hat Linux용 설치 파일인 msodbcsql-11.0.2270.0.tar.gz를 참조하세요. SUSE Linux용 미리 보기를 설치하는 경우 파일 이름은 msodbcsql-11.0.2260.0.tar.gz입니다.

드라이버를 설치하려면:

  1. 루트 권한이 있는지 확인합니다.

  2. 다운로드한 msodbcsql-11.0.2270.0.tar.gz 파일이 저장된 디렉터리로 변경합니다. Linux 버전과 일치하는 *.tar.gz 파일이 있는지 확인합니다. 파일을 추출하려면 tar xvzf msodbcsql-11.0.2270.0.tar.gz 명령을 실행합니다.

  3. msodbcsql-11.0.2270.0 디렉터리로 변경하면 install.sh라는 파일이 나타납니다.

  4. 사용 가능한 설치 옵션 목록을 보려면 ./install.sh 명령을 실행합니다.

  5. odbcinst.ini의 백업을 만듭니다. 드라이버 설치가 odbcinst.ini를 업데이트합니다. odbcinst.ini에는 unixODBC 드라이버 관리자에 등록된 드라이버 목록이 있습니다. 컴퓨터에서 odbcinst.ini의 위치를 검색하려면 odbc_config --odbcinstini 명령을 실행합니다.

  6. 드라이버를 설치하기 전에 ./install.sh verify 명령을 실행합니다. ./install.sh verify의 출력은 컴퓨터에 Linux에서 ODBC 드라이버를 지원하는 데 필요한 소프트웨어가 있는지 여부를 보고합니다.

  7. Linux에 ODBC 드라이버를 설치할 준비가 되면 ./install.sh install 명령을 실행합니다. 설치 명령(bin-dir 또는 lib-dir)을 지정하려면 install 옵션 명령을 지정합니다.

  8. 사용권 계약을 검토한 후 를 입력하여 설치를 계속합니다.

/opt/microsoft/msodbcsql/11.0.2270.0 드라이버에 설치됩니다. 드라이버 및 해당 지원 파일은 /opt/microsoft/msodbcsql/11.0.2270.0에 있어야 합니다.

Linux에서 Microsoft ODBC 드라이버가 성공적으로 등록되었는지 확인하려면 odbcinst -q -d -n "ODBC Driver 11 for SQL Server" 명령을 실행합니다.

제거

다음 명령을 실행하여 Linux 기반 ODBC 드라이버 11을 제거할 수 있습니다.

  1. rm -f /usr/bin/sqlcmd

  2. rm -f /usr/bin/bcp

  3. rm -rf /opt/microsoft/msodbcsql

  4. odbcinst -u -d -n "ODBC Driver 11 for SQL Server"

드라이버 파일

Linux 기반 ODBC 드라이버는 다음 구성 요소를 포함합니다.

구성 요소 설명
libmsodbcsql-17.X.so.X.X 또는 libmsodbcsql-13.X.so.X.X 드라이버의 모든 기능이 포함된 공유 개체(so) 동적 라이브러리 파일입니다. 이 파일은 드라이버 17의 경우 /opt/microsoft/msodbcsql17/lib64/, 드라이버 13의 경우 /opt/microsoft/msodbcsql/lib64/에 설치됩니다.
msodbcsqlr17.rll 또는 msodbcsqlr13.rll 드라이버 라이브러리에 대한 해당 리소스 파일입니다. 이 파일은 [driver .so directory]../share/resources/en_US/에 설치됩니다.
msodbcsql.h 드라이버를 사용하는 데 필요한 모든 새 정의가 포함된 헤더 파일입니다.

참고: 동일한 프로그램에서 msodbcsql.h 및 odbcss.h를 참조할 수 없습니다.

msodbcsql.h는 드라이버 17의 경우 /opt/microsoft/msodbcsql17/include/, 드라이버 13의 경우 /opt/microsoft/msodbcsql/include/에 설치됩니다.
LICENSE.txt 최종 사용자 사용권 계약 조건이 포함된 텍스트 파일입니다. 이 파일은 드라이버 17의 경우 /usr/share/doc/msodbcsql17/ 및 드라이버 13의 경우 /usr/share/doc/msodbcsql/에 저장됩니다.
RELEASE_NOTES 릴리스 정보가 포함된 텍스트 파일입니다. 이 파일은 드라이버 17의 경우 /usr/share/doc/msodbcsql17/ 및 드라이버 13의 경우 /usr/share/doc/msodbcsql/에 저장됩니다.

리소스 파일 로드

드라이버가 작동하려면 리소스 파일을 로드해야 합니다. 이 파일의 이름은 드라이버 버전에 따라 msodbcsqlr17.rll 또는 msodbcsqlr13.rll입니다. .rll 파일의 위치는 이전 테이블의 설명과 같이 드라이버 자체(so 또는 dylib)의 위치에 대한 상대 위치입니다. 버전 17.1부터 드라이버가 상대 경로에서 로드에 실패하면 기본 디렉터리에서 .rll의 로드를 시도합니다. Linux의 기본 리소스 파일 경로는 /opt/microsoft/msodbcsql17/share/resources/en_US/입니다.

문제 해결

이전에 드라이버를 설치하여 unixODBC에 등록한 버전이 있는 경우 Installation failed, ODBC Driver $1 for SQL Server detected!과(와) 같은 오류와 함께 설치가 실패할 수 있습니다. 문제를 해결하려면 해당 버전의 드라이버 등록을 취소합니다. odbcinst 명령 odbcinst -u -d -n "ODBC Driver $1 for SQL Server을(를) 통해 드라이버 등록을 취소할 수 있습니다. ($1을(를) 설치 오류에서 보고된 드라이버 버전으로 바꿉니다.) odbcinst 명령을 통한 제거가 실패하면 odbcinst.ini 파일에서 드라이버 섹션을 수동으로 제거할 수 있습니다. odbcinst.ini 명령을 통해 odbcinst -j 파일의 위치를 찾을 수 있습니다.

ODBC 드라이버를 사용하여 SQL Server에 연결할 수 없는 경우 연결 문제 해결에서 알려진 문제 문서를 참조하세요.

다음 단계

드라이버를 설치한 후 C++ ODBC 예시 애플리케이션을 사용해 볼 수 있습니다. ODBC 애플리케이션 개발에 대한 자세한 내용은 애플리케이션 개발을 참조하세요.

자세한 내용은 ODBC 드라이버 릴리스 정보시스템 요구 사항을 참조하세요.