다음 섹션에서는 다양한 Linux 배포용 bash 셸에서 Microsoft ODBC Driver 18을 설치하는 방법을 설명합니다. 지원되는 배포판은 Alpine Linux, Debian, RHEL(Red Hat Enterprise Linux), Oracle Linux, SLES(SUSE Linux Enterprise Server) 및 Ubuntu입니다. 버전 18.4부터 비 Alpine Linux(.deb 또는 .rpm) 드라이버를 설치할 때 자동으로 EULA를 수락하려면 '/opt/microsoft/msodbcsql18/ACCEPT_EULA' 파일을 생성하면 됩니다.
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/7/6/d/76de322a-d860-4894-9945-f0cc5d6a45f8/msodbcsql18_18.4.1.1-1_$architecture.apk
curl -O https://download.microsoft.com/download/7/6/d/76de322a-d860-4894-9945-f0cc5d6a45f8/mssql-tools18_18.4.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/7/6/d/76de322a-d860-4894-9945-f0cc5d6a45f8/msodbcsql18_18.4.1.1-1_$architecture.sig
curl -O https://download.microsoft.com/download/7/6/d/76de322a-d860-4894-9945-f0cc5d6a45f8/mssql-tools18_18.4.1.1-1_$architecture.sig
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --import -
gpg --verify msodbcsql18_18.4.1.1-1_$architecture.sig msodbcsql18_18.4.1.1-1_$architecture.apk
gpg --verify mssql-tools18_18.4.1.1-1_$architecture.sig mssql-tools18_18.4.1.1-1_$architecture.apk
#Install the package(s)
sudo apk add --allow-untrusted msodbcsql18_18.4.1.1-1_$architecture.apk
sudo apk add --allow-untrusted mssql-tools18_18.4.1.1-1_$architecture.apk
참고 항목
Alpine을 지원하려면 드라이버 버전 17.5 이상이 필요합니다.
#Debian 9-11
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
# Debian 12
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
#Download appropriate package for the OS version
#Choose only ONE of the following, corresponding to your OS version
#Debian 9
curl https://packages.microsoft.com/config/debian/9/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
#Debian 10
curl https://packages.microsoft.com/config/debian/10/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
#Debian 11
curl https://packages.microsoft.com/config/debian/11/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
#Debian 12
curl https://packages.microsoft.com/config/debian/12/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y apt-get install -y mssql-tools18
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo apt-get install -y unixodbc-dev
# optional: kerberos library for debian-slim distributions
sudo apt-get install -y libgssapi-krb5-2
참고 항목
환경 변수 ACCEPT_EULA를 설정하는 대신 msodbcsql/ACCEPT_EULA가 아닌 debconf 변수 echo msodbcsql18 msodbcsql/ACCEPT_EULA boolean true | sudo debconf-set-selections를 설정하는 것으로 대체할 수 있습니다.
오류: 공개 키를 사용할 수 없기 때문에 다음 서명을 확인할 수 없습니다.
증상
apt-get update의 실행 중에 다음 텍스트와 유사한 오류가 발생합니다.
W: GPG error: https://packages.microsoft.com/debian/12/prod bookworm InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY EB3E94ADBE1229CF
E: The repository 'https://packages.microsoft.com/debian/12/prod bookworm InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
해결 방법
/etc/apt/sources.list.d/mssql-release.list 파일을 다운로드한 후 편집하여 signed-by 값을 제거합니다.
이전:deb [arch=amd64,arm64,armhf signed-by=/usr/share/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/debian/12/prod bookworm main
새 항목:deb [arch=amd64,arm64,armhf] https://packages.microsoft.com/debian/12/prod bookworm main
sudo apt-get update를 실행하고 거기서부터 설치를 계속합니다.
#Download appropriate package for the OS version
#Choose only ONE of the following, corresponding to your OS version
#RHEL 7 and Oracle Linux 7
curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
#RHEL 8 and Oracle Linux 8
curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
#RHEL 9
curl https://packages.microsoft.com/config/rhel/9/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel #to avoid conflicts
sudo ACCEPT_EULA=Y yum install -y msodbcsql18
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y yum install -y mssql-tools18
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo yum install -y unixODBC-devel
curl -O https://packages.microsoft.com/keys/microsoft.asc
sudo rpm --import microsoft.asc
#Download appropriate package for the OS version
#Choose only ONE of the following, corresponding to your OS version
#SLES 12
sudo zypper ar https://packages.microsoft.com/config/sles/12/prod.repo
#SLES 15
sudo zypper ar https://packages.microsoft.com/config/sles/15/prod.repo
#(Only for driver 17.3 and below)
sudo SUSEConnect -p sle-module-legacy/15/x86_64
sudo ACCEPT_EULA=Y zypper install -y msodbcsql18
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y zypper install -y mssql-tools18
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo zypper install -y unixODBC-devel
if ! [[ "18.04 20.04 22.04 23.04 24.04" == *"$(lsb_release -rs)"* ]];
then
echo "Ubuntu $(lsb_release -rs) is not currently supported.";
exit;
fi
# Add the signature to trust the Microsoft repo
# For Ubuntu versions < 24.04
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
# For Ubuntu versions >= 24.04
curl https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
# Add repo to apt sources
curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
# Install the driver
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y apt-get install -y mssql-tools18
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo apt-get install -y unixodbc-dev
참고 항목
환경 변수 'ACCEPT_EULA'를 debconf 변수 'msodbcsql/ACCEPT_EULA'로 대신 설정할 수 있습니다. echo msodbcsql18 msodbcsql/ACCEPT_EULA boolean true | sudo debconf-set-selections
이전 버전
다음 섹션에서는 Linux에서 이전 버전의 Microsoft ODBC 드라이버를 설치하기 위한 지침을 제공합니다. 다음 드라이버 버전에 대한 설명이 제공됩니다.
다음 섹션에서는 다양한 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 이상이 필요합니다.
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
# Debian 12
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
#Download appropriate package for the OS version
#Choose only ONE of the following, corresponding to your OS version
#Debian 9
curl https://packages.microsoft.com/config/debian/9/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
#Debian 10
curl https://packages.microsoft.com/config/debian/10/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
#Debian 11
curl https://packages.microsoft.com/config/debian/11/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
#Debian 12
curl https://packages.microsoft.com/config/debian/12/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql17
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y apt-get install -y mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo apt-get install -y unixodbc-dev
# optional: kerberos library for debian-slim distributions
sudo apt-get install -y libgssapi-krb5-2
참고 항목
환경 변수 'ACCEPT_EULA'를 debconf 변수 'msodbcsql/ACCEPT_EULA'로 대신 설정할 수 있습니다. echo msodbcsql17 msodbcsql/ACCEPT_EULA boolean true | sudo debconf-set-selections
#Download appropriate package for the OS version
#Choose only ONE of the following, corresponding to your OS version
#RHEL 7 and Oracle Linux 7
curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
#RHEL 8 and Oracle Linux 8
curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
#RHEL 9
curl https://packages.microsoft.com/config/rhel/9/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel #to avoid conflicts
sudo ACCEPT_EULA=Y yum install -y msodbcsql17
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y yum install -y mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo yum install -y unixODBC-devel
curl -O https://packages.microsoft.com/keys/microsoft.asc
sudo rpm --import microsoft.asc
#Download appropriate package for the OS version
#Choose only ONE of the following, corresponding to your OS version
#SLES 12
sudo zypper ar https://packages.microsoft.com/config/sles/12/prod.repo
#SLES 15
sudo zypper ar https://packages.microsoft.com/config/sles/15/prod.repo
#(Only for driver 17.3 and below)
sudo SUSEConnect -p sle-module-legacy/15/x86_64
sudo ACCEPT_EULA=Y zypper install -y msodbcsql17
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y zypper install -y mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo zypper install -y unixODBC-devel
if ! [[ "16.04 18.04 20.04 22.04" == *"$(lsb_release -rs)"* ]];
then
echo "Ubuntu $(lsb_release -rs) is not currently supported.";
exit;
fi
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql17
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y apt-get install -y mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo apt-get install -y unixodbc-dev
참고 항목
환경 변수 'ACCEPT_EULA'를 debconf 변수 'msodbcsql/ACCEPT_EULA'로 대신 설정할 수 있습니다. echo msodbcsql17 msodbcsql/ACCEPT_EULA boolean true | sudo debconf-set-selections
ODBC 13.1
다음 섹션에서는 다양한 Linux 배포용 bash 셸에서 Microsoft ODBC Driver 13.1을 설치하는 방법을 설명합니다.
다운로드한 msodbcsql-11.0.2270.0.tar.gz 파일이 저장된 디렉터리로 변경합니다. Linux 버전과 일치하는 *.tar.gz 파일이 있는지 확인합니다. 파일을 추출하려면 tar xvzf msodbcsql-11.0.2270.0.tar.gz 명령을 실행합니다.
odbcinst.ini의 백업을 만듭니다. 드라이버 설치가 odbcinst.ini를 업데이트합니다. odbcinst.ini에는 unixODBC 드라이버 관리자에 등록된 드라이버 목록이 있습니다. 컴퓨터에서 odbcinst.ini의 위치를 검색하려면 odbc_config --odbcinstini 명령을 실행합니다.
드라이버를 설치하기 전에 ./install.sh verify 명령을 실행합니다.
./install.sh verify의 출력은 컴퓨터에 Linux에서 ODBC 드라이버를 지원하는 데 필요한 소프트웨어가 있는지 여부를 보고합니다.
Linux에 ODBC 드라이버를 설치할 준비가 되면 ./install.sh install 명령을 실행합니다. 설치 명령(bin-dir 또는 lib-dir)을 지정하려면 install 옵션 명령을 지정합니다.
사용권 계약을 검토한 후 예를 입력하여 설치를 계속합니다.
/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을 제거할 수 있습니다.
rm -f /usr/bin/sqlcmd
rm -f /usr/bin/bcp
rm -rf /opt/microsoft/msodbcsql
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에 연결할 수 없는 경우 연결 문제 해결에서 알려진 문제 문서를 참조하세요.