Este artigo explica como instalar o driver ODBC da Microsoft para SQL Server no Linux. Ele também inclui instruções para as ferramentas de linha de comando opcionais para SQL Server (bcp e sqlcmd) e os cabeçalhos de desenvolvimento unixODBC.
Este artigo fornece comandos para instalar o driver ODBC a partir do shell bash. Se quiseres descarregar os pacotes diretamente, consulta Descarregar o Driver ODBC para SQL Server.
Microsoft ODBC 18
As seções a seguir explicam como instalar o driver ODBC da Microsoft 18 a partir do shell bash para diferentes distribuições Linux. As distribuições suportadas são Alpine Linux, Debian, Red Hat Enterprise Linux (RHEL), Oracle Linux, SUSE Linux Enterprise Server (SLES), Ubuntu e Azure Linux. A partir da versão 18.4, para aceitar automaticamente o EULA ao instalar o driver não-Alpine Linux (.debou .rpm), pode criar o ficheiro /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/9dcab408-e0d4-4571-a81a-5a0951e3445f/msodbcsql18_18.6.1.1-1_$architecture.apk
curl -O https://download.microsoft.com/download/b60bb8b6-d398-4819-9950-2e30cf725fb0/mssql-tools18_18.6.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/9dcab408-e0d4-4571-a81a-5a0951e3445f/msodbcsql18_18.6.1.1-1_$architecture.sig
curl -O https://download.microsoft.com/download/b60bb8b6-d398-4819-9950-2e30cf725fb0/mssql-tools18_18.6.1.1-1_$architecture.sig
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --import -
gpg --verify msodbcsql18_18.6.1.1-1_$architecture.sig msodbcsql18_18.6.1.1-1_$architecture.apk
gpg --verify mssql-tools18_18.6.1.1-1_$architecture.sig mssql-tools18_18.6.1.1-1_$architecture.apk
#Install the package(s)
sudo apk add --allow-untrusted msodbcsql18_18.6.1.1-1_$architecture.apk
sudo apk add --allow-untrusted mssql-tools18_18.6.1.1-1_$architecture.apk
Observação
A versão do driver 17.5 ou superior é necessária para o suporte da Alpine.
if ! [[ "9 10 11 12 13" == *"$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)"* ]];
then
echo "Debian $(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1) is not currently supported.";
exit;
fi
# Download the package to configure the Microsoft repo
curl -sSL -O https://packages.microsoft.com/config/debian/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)/packages-microsoft-prod.deb
# Install the package
sudo dpkg -i packages-microsoft-prod.deb
# Delete the file
rm packages-microsoft-prod.deb
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
Observação
Você pode substituir a configuração da variável de ambiente ACCEPT_EULA pela configuração da variável debconf msodbcsql/ACCEPT_EULA em vez disso: echo msodbcsql18 msodbcsql/ACCEPT_EULA boolean true | sudo debconf-set-selections
if ! [[ "7 8 9 10" == *"$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)"* ]];
then
echo "RHEL $(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1) is not currently supported.";
exit;
fi
# Download the package to configure the Microsoft repo
curl -sSL -O https://packages.microsoft.com/config/rhel/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)/packages-microsoft-prod.rpm
# Install the package
sudo yum install packages-microsoft-prod.rpm
# Delete the file
rm packages-microsoft-prod.rpm
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
if ! [[ "12 15" == *"$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)"* ]];
then
echo "SLES $(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1) is not currently supported.";
exit;
fi
# Import the GPG key
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
# Download the package to configure the Microsoft repo
curl -sSL -O https://packages.microsoft.com/config/sles/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)/packages-microsoft-prod.rpm
# Install the package
sudo zypper install packages-microsoft-prod.rpm
# Delete the file
rm packages-microsoft-prod.rpm
sudo zypper update
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 24.04 25.10" == *"$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2)"* ]];
then
echo "Ubuntu $(grep VERSION_ID /etc/os-release | cut -d '"' -f 2) is not currently supported.";
exit;
fi
# Download the package to configure the Microsoft repo
curl -sSL -O https://packages.microsoft.com/config/ubuntu/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2)/packages-microsoft-prod.deb
# Install the package
sudo dpkg -i packages-microsoft-prod.deb
# Delete the file
rm packages-microsoft-prod.deb
# 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
Observação
Você pode substituir a configuração da variável de ambiente 'ACCEPT_EULA' pela configuração da variável debconf 'msodbcsql/ACCEPT_EULA' em vez disso: echo msodbcsql18 msodbcsql/ACCEPT_EULA boolean true | sudo debconf-set-selections
if ! [[ "3.0" == *"$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2)"* ]];
then
echo "Azure Linux $(grep VERSION_ID /etc/os-release | cut -d '"' -f 2) is not currently supported.";
exit;
fi
sudo ACCEPT_EULA=Y tdnf install -y msodbcsql18
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y tdnf install -y mssql-tools18
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo tdnf install -y unixODBC-devel
Observação
Se não definires a ACCEPT_EULA variável de ambiente, a instalação continua na mesma. No entanto, depois precisa de executar manualmente /opt/microsoft/msodbcsql18/accept-eula.sh e /opt/mssql-tools18/bin/accept-eula.sh para concordar com os termos da licença. Para aceitar automaticamente o EULA durante a instalação, pode criar os ficheiros /opt/microsoft/msodbcsql18/ACCEPT_EULA e /opt/mssql-tools18/ACCEPT_EULA.
Versões anteriores
As seções a seguir fornecem instruções para instalar versões anteriores do driver ODBC da Microsoft no Linux. As seguintes versões de driver são cobertas:
Microsoft ODBC 17
As seções a seguir explicam como instalar o driver ODBC da Microsoft 17 a partir do shell bash para diferentes distribuições Linux.
Importante
Se instalaste o pacote v17 msodbcsql que esteve disponível brevemente, deves removê-lo antes de instalar o msodbcsql17 pacote para evitar conflitos. O pacote msodbcsql17 pode ser instalado lado a lado com o pacote 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.6.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.6.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.6.1-1_amd64.sig msodbcsql17_17.10.6.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.6.1-1_amd64.apk
sudo apk add --allow-untrusted mssql-tools_17.10.1.1-1_amd64.apk
Observação
A versão do driver 17.5 ou superior é necessária para o suporte da Alpine.
if ! [[ "8 9 10 11 12" == *"$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)"* ]];
then
echo "Debian $(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1) is not currently supported.";
exit;
fi
# Download the package to configure the Microsoft repo
curl -sSL -O https://packages.microsoft.com/config/debian/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)/packages-microsoft-prod.deb
# Install the package
sudo dpkg -i packages-microsoft-prod.deb
# Delete the file
rm packages-microsoft-prod.deb
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
Observação
Você pode substituir a configuração da variável de ambiente 'ACCEPT_EULA' pela configuração da variável debconf 'msodbcsql/ACCEPT_EULA' em vez disso: echo msodbcsql17 msodbcsql/ACCEPT_EULA boolean true | sudo debconf-set-selections
if ! [[ "6 7 8 9" == *"$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)"* ]];
then
echo "RHEL $(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1) is not currently supported.";
exit;
fi
# Download the package to configure the Microsoft repo
curl -sSL -O https://packages.microsoft.com/config/rhel/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)/packages-microsoft-prod.rpm
# Install the package
sudo yum install packages-microsoft-prod.rpm
# Delete the file
rm packages-microsoft-prod.rpm
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
if ! [[ "11 12 15" == *"$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)"* ]];
then
echo "SLES $(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1) is not currently supported.";
exit;
fi
# Import the GPG key
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
# Download the package to configure the Microsoft repo
curl -sSL -O https://packages.microsoft.com/config/sles/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)/packages-microsoft-prod.rpm
# Install the package
sudo zypper install packages-microsoft-prod.rpm
# Delete the file
rm packages-microsoft-prod.rpm
# If you need driver 17.3 or below on SLES 15, you also need to run:
# sudo SUSEConnect -p sle-module-legacy/15/x86_64
sudo zypper update
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 ! [[ "14.04 16.04 18.04 20.04 22.04" == *"$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2)"* ]];
then
echo "Ubuntu $(grep VERSION_ID /etc/os-release | cut -d '"' -f 2) is not currently supported.";
exit;
fi
# Download the package to configure the Microsoft repo
curl -sSL -O https://packages.microsoft.com/config/ubuntu/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2)/packages-microsoft-prod.deb
# Install the package
sudo dpkg -i packages-microsoft-prod.deb
# Delete the file
rm packages-microsoft-prod.deb
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
Observação
Você pode substituir a configuração da variável de ambiente 'ACCEPT_EULA' pela configuração da variável debconf 'msodbcsql/ACCEPT_EULA' em vez disso: echo msodbcsql17 msodbcsql/ACCEPT_EULA boolean true | sudo debconf-set-selections
ODBC 13,1
As seções a seguir explicam como instalar o driver ODBC da Microsoft 13.1 a partir do shell bash para diferentes distribuições Linux.
if ! [[ "8" == *"$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)"* ]];
then
echo "Debian $(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1) is not currently supported.";
exit;
fi
# Download the package to configure the Microsoft repo
curl -sSL -O https://packages.microsoft.com/config/debian/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)/packages-microsoft-prod.deb
# Install the package
sudo dpkg -i packages-microsoft-prod.deb
# Delete the file
rm packages-microsoft-prod.deb
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
if ! [[ "6 7" == *"$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)"* ]];
then
echo "RHEL $(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1) is not currently supported.";
exit;
fi
# Download the package to configure the Microsoft repo
curl -sSL -O https://packages.microsoft.com/config/rhel/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)/packages-microsoft-prod.rpm
# Install the package
sudo yum install packages-microsoft-prod.rpm
# Delete the file
rm packages-microsoft-prod.rpm
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel #to avoid conflicts
sudo ACCEPT_EULA=Y yum install msodbcsql
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y yum install mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo yum install unixODBC-devel
if ! [[ "11 12" == *"$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)"* ]];
then
echo "SLES $(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1) is not currently supported.";
exit;
fi
# Import the GPG key
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
# Download the package to configure the Microsoft repo
curl -sSL -O https://packages.microsoft.com/config/sles/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)/packages-microsoft-prod.rpm
# Install the package
sudo zypper install packages-microsoft-prod.rpm
# Delete the file
rm packages-microsoft-prod.rpm
sudo ACCEPT_EULA=Y zypper install msodbcsql
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y zypper install mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo zypper install unixODBC-devel
if ! [[ "14.04 16.04" == *"$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2)"* ]];
then
echo "Ubuntu $(grep VERSION_ID /etc/os-release | cut -d '"' -f 2) is not currently supported.";
exit;
fi
# Download the package to configure the Microsoft repo
curl -sSL -O https://packages.microsoft.com/config/ubuntu/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2)/packages-microsoft-prod.deb
# Install the package
sudo dpkg -i packages-microsoft-prod.deb
# Delete the file
rm packages-microsoft-prod.deb
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
As seções a seguir explicam como instalar o driver ODBC da Microsoft 13 a partir do shell bash para diferentes distribuições Linux.
if ! [[ "6 7" == *"$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)"* ]];
then
echo "RHEL $(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1) is not currently supported.";
exit;
fi
# Download the package to configure the Microsoft repo
curl -sSL -O https://packages.microsoft.com/config/rhel/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)/packages-microsoft-prod.rpm
# Install the package
sudo yum install packages-microsoft-prod.rpm
# Delete the file
rm packages-microsoft-prod.rpm
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
if ! [[ "14.04 16.04" == *"$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2)"* ]];
then
echo "Ubuntu $(grep VERSION_ID /etc/os-release | cut -d '"' -f 2) is not currently supported.";
exit;
fi
# Download the package to configure the Microsoft repo
curl -sSL -O https://packages.microsoft.com/config/ubuntu/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2)/packages-microsoft-prod.deb
# Install the package
sudo dpkg -i packages-microsoft-prod.deb
# Delete the file
rm packages-microsoft-prod.deb
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install msodbcsql=13.0.1.0-1 mssql-tools=14.0.2.0-1
sudo apt-get install unixodbc-dev-utf16 #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
if ! [[ "11 12" == *"$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)"* ]];
then
echo "SLES $(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1) is not currently supported.";
exit;
fi
# Import the GPG key
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
# Download the package to configure the Microsoft repo
curl -sSL -O https://packages.microsoft.com/config/sles/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)/packages-microsoft-prod.rpm
# Install the package
sudo zypper install packages-microsoft-prod.rpm
# Delete the file
rm packages-microsoft-prod.rpm
sudo zypper update
sudo ACCEPT_EULA=Y zypper install msodbcsql-13.0.1.0-1 mssql-tools-14.0.2.0-1
sudo zypper install unixODBC-utf16-devel
#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
Instalação offline
Se precisar instalar o Microsoft ODBC Driver 13 num computador sem conexão à Internet, deve resolver manualmente as dependências do pacote. O Microsoft ODBC Driver 13 tem as seguintes dependências diretas:
- Ubuntu: libc6 (>= 2.21), libstdc++6 (>= 4.9), libkrb5-3, libcurl3, openssl, debconf (>= 0.5), unixodbc (>= 2.3.1-1)
- Chapéu Vermelho:
glibc, e2fsprogs, krb5-libs, openssl, unixODBC
- SUSE:
glibc, libuuid1, krb5, openssl, unixODBC
Cada um desses pacotes, por sua vez, tem suas próprias dependências, que podem ou não estar presentes no sistema. Para obter uma solução geral para esse problema, consulte a documentação do gerenciador de pacotes da sua distribuição: Red Hat, Ubuntue SUSE
Também é comum baixar manualmente todos os pacotes dependentes e colocá-los juntos no computador de instalação e, em seguida, instalar manualmente cada pacote por vez, terminando com o pacote Microsoft ODBC Driver 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
sudo zypper install glibc, libuuid1, krb5, openssl, unixODBC unixODBC-devel #install dependencies
sudo rpm -i msodbcsql-13.1.X.X-X.x86_64.rpm #install the Driver
Depois de concluir a instalação do pacote, você pode verificar se o Microsoft ODBC Driver 13 pode encontrar todas as suas dependências executando ldd e inspecionando sua saída para bibliotecas ausentes:
ldd /opt/microsoft/msodbcsql/lib64/libmsodbcsql-*
sudo apt-get install libc6 libstdc++6 libkrb5-3 libcurl3 openssl debconf unixodbc unixodbc-dev #install dependencies
sudo dpkg -i msodbcsql_13.1.X.X-X_amd64.deb #install the Driver
ODBC 11
As seções a seguir explicam como instalar o driver Microsoft ODBC 11 no Linux. Antes de poder usar o driver, instale o gerenciador de driver unixODBC. Para obter mais informações, consulte Instalando o Gerenciador de Driver.
Etapas de instalação
Importante
Estas instruções referem-se ao msodbcsql-11.0.2270.0.tar.gz, que é o arquivo de instalação do Red Hat Linux. Se você instalar para o SUSE Linux, o nome do arquivo será msodbcsql-11.0.2260.0.tar.gz.
Para instalar o driver:
Certifique-se de que você tem permissão de root.
Faça o download do driver.
Red Hat 5 - msodbcsql-11.0.2270.0.tar.gzSHA256: 178280daf01a49b8322cd902b6440979adacd594c01cd2a1f081dda23dbfb343
Red Hat 6 - msodbcsql-11.0.2270.0.tar.gzSHA256: e9b6bd33d174c7753b3a3f2d541713fbc156b46254484a169caa3f459dd828f7
SUSE Linux - msodbcsql-11.0.2260.0.tar.gz (SHA256: 86d1c5842be4f0095234a9455e18a04fdf4cc7960ec0255b37258112e2391ef5)
Mude para o diretório onde o download colocou o arquivo msodbcsql-11.0.2270.0.tar.gz. Certifique-se de que tem o ficheiro *.tar.gz que corresponde à sua versão do Linux. Para extrair os ficheiros, execute o seguinte comando, tar xvzf msodbcsql-11.0.2270.0.tar.gz.
Mude para o diretório msodbcsql-11.0.2270.0 e lá você verá um arquivo chamado install.sh.
Para ver uma lista das opções de instalação disponíveis, execute o seguinte comando: ./install.sh.
Faça um backup de odbcinst.ini. As atualizações da instalação do driver modificam o odbcinst.ini. odbcinst.ini contém a lista de drivers registados com o Gestor de Drivers unixODBC. Para descobrir a localização de odbcinst.ini no seu computador, execute o seguinte comando: odbc_config --odbcinstini.
Antes de instalar o driver, execute o seguinte comando: ./install.sh verify. A saída de ./install.sh verify relata se o seu computador tem o software necessário para suportar o driver ODBC no Linux.
Quando estiver pronto para instalar o driver ODBC no Linux, execute o comando: ./install.sh install. Se você precisar especificar um comando install (bin-dir ou lib-dir), especifique o comando após a opção install.
Depois de revisar o contrato de licença, digite SIM para continuar com a instalação.
A instalação coloca o driver em /opt/microsoft/msodbcsql/11.0.2270.0. O driver e seus arquivos de suporte devem estar em /opt/microsoft/msodbcsql/11.0.2270.0.
Para verificar se o driver ODBC da Microsoft no Linux foi registrado com êxito, execute o seguinte comando: odbcinst -q -d -n "ODBC Driver 11 for SQL Server".
Desinstalar
Você pode desinstalar o driver ODBC 11 no Linux executando os seguintes comandos:
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"
Arquivos de driver
O driver ODBC no Linux consiste nos seguintes componentes:
| Componente |
Descrição |
| libmsodbcsql-17.X.so.X.X ou libmsodbcsql-13.X.so.X.X |
O arquivo de biblioteca dinâmica de objeto compartilhado (so) que contém todas as funcionalidades do driver. Este arquivo é instalado no /opt/microsoft/msodbcsql17/lib64/ para o Driver 17 e no /opt/microsoft/msodbcsql/lib64/ para o Driver 13. |
msodbcsqlr17.rll ou msodbcsqlr13.rll |
O arquivo de recurso que acompanha a biblioteca de drivers. Este ficheiro está instalado em [driver .so directory]../share/resources/en_US/ |
| msodbcsql.h |
O arquivo de cabeçalho que contém todas as novas definições necessárias para usar o driver.
Nota: Não é possível fazer referência a msodbcsql.h e odbcss.h no mesmo programa.
msodbcsql.h é instalado no /opt/microsoft/msodbcsql17/include/ para Driver 17 e no /opt/microsoft/msodbcsql/include/ para Driver 13. |
| LICENSE.txt |
O arquivo de texto que contém os termos do End-User Contrato de Licença. Este arquivo é colocado em /usr/share/doc/msodbcsql17/ para Driver 17 e em /usr/share/doc/msodbcsql/ para Driver 13. |
| NOTAS_DE_LIBERTAÇÃO |
O ficheiro de texto que contém notas de versão. Este arquivo é colocado em /usr/share/doc/msodbcsql17/ para Driver 17 e em /usr/share/doc/msodbcsql/ para Driver 13. |
Carregamento de arquivos de recursos
O driver precisa carregar o arquivo de recurso para funcionar. Esse arquivo é chamado de msodbcsqlr17.rll ou msodbcsqlr13.rll dependendo da versão do driver. A localização do arquivo .rll é relativa à localização do próprio driver (so ou dylib), como observado na tabela anterior. A partir da versão 17.1, se o carregamento do caminho relativo falhar, o driver também tenta carregar o .rll do diretório padrão. O caminho do arquivo de recurso padrão no Linux é /opt/microsoft/msodbcsql17/share/resources/en_US/.
Solução de problemas
Se uma versão do driver foi instalada anteriormente e registrada com unixODBC, a instalação pode falhar com um erro como Installation failed, ODBC Driver $1 for SQL Server detected!. Para resolver o problema, cancele o registro dessa versão do driver. Você pode cancelar o registro de drivers através do comando odbcinst: odbcinst -u -d -n "ODBC Driver $1 for SQL Server. (Substitua $1 pela versão do driver relatada no erro de instalação.) Se a desinstalação através do comando odbcinst falhar, pode remover manualmente as secções do controlador do ficheiro odbcinst.ini. Você pode encontrar a localização do arquivo odbcinst.ini através do comando odbcinst -j.
Se você não conseguir estabelecer uma conexão com o SQL Server usando o driver ODBC, consulte o artigo de problemas conhecidos sobre solução de problemas de conexão.
Conteúdo relacionado