Aracılığıyla paylaş


SQL Server için Microsoft ODBC sürücüsünü yükleme (Linux)

Bu makalede, Linux'ta SQL Server için Microsoft ODBC Sürücüsünün nasıl yükleneceği açıklanmaktadır. Ayrıca SQL Server için isteğe bağlı komut satırı araçlarına (bcp ve sqlcmd) ve unixODBC geliştirme üst bilgilerine yönelik yönergeler içerir.

Bu makalede BASH kabuğundan ODBC sürücüsünü yüklemeye yönelik komutlar sağlanır. Paketleri doğrudan indirmek istiyorsanız bkz. SQL Serveriçin ODBC Sürücüsünü İndirme .

Microsoft ODBC 18

Aşağıdaki bölümlerde, farklı Linux dağıtımları için Bash kabuğundan Microsoft ODBC sürücüsü 18'in nasıl yükleneceği açıklanmaktadır. Desteklenen dağıtımlar Alpine Linux, Debian, Red Hat Enterprise Linux (RHEL), Oracle Linux, SUSE Linux Enterprise Server (SLES) ve Ubuntu'dır. Sürüm 18.4'den başlayarak, Alpine Linux (.deb veya .rpm) olmayan sürücüyü yüklerken EULA'yı otomatik olarak kabul etmek için '/opt/microsoft/msodbcsql18/ACCEPT_EULA' dosyasını oluşturabilirsiniz.

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

Not

Alp desteği için sürücü sürümü 17.5 veya üzeri gereklidir.

Önceki sürümler

Aşağıdaki bölümlerde, Linux'ta Microsoft ODBC sürücüsünün önceki sürümlerini yüklemeye yönelik yönergeler sağlanır. Aşağıdaki sürücü sürümleri ele alınmıştır:

Microsoft ODBC 17

Aşağıdaki bölümlerde, farklı Linux dağıtımları için Bash kabuğundan Microsoft ODBC sürücüsü 17'nin nasıl yükleneceği açıklanmaktadır.

Önemli

Kısa bir süre kullanılabilen v17 msodbcsql paketini yüklediyseniz, msodbcsql17 paketini yüklemeden önce paketi kaldırmanız gerekir. Bu, çakışmaları önler. msodbcsql17 paketi, msodbcsql v13 paketiyle yan yana yüklenebilir.

#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

Not

Alp desteği için sürücü sürümü 17.5 veya üzeri gereklidir.

ODBC 13.1

Aşağıdaki bölümlerde, farklı Linux dağıtımları için Bash kabuğundan Microsoft ODBC sürücüsü 13.1'in nasıl yükleneceği açıklanmaktadır.

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

ODBC 13

Aşağıdaki bölümlerde, farklı Linux dağıtımları için Bash kabuğundan Microsoft ODBC sürücüsü 13'ü yükleme açıklanmaktadır.

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

Çevrimdışı yükleme

Microsoft ODBC Sürücüsü 13'ü İnternet bağlantısı olmayan bir bilgisayara yüklemeniz gerekiyorsa paket bağımlılıklarını el ile çözmeniz gerekir. Microsoft ODBC Sürücüsü 13 aşağıdaki doğrudan bağımlılıklara sahiptir:

  • 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

Bu paketlerin her birinin kendi bağımlılıkları vardır ve bu bağımlılıklar sistemde mevcut olabilir veya olmayabilir. Bu sorunun genel bir çözümü için dağıtımınızın paket yöneticisi belgelerine bakın: Red Hat, Ubuntuve SUSE

Ayrıca, tüm bağımlı paketleri el ile indirmek ve bunları yükleme bilgisayarına yerleştirmek, ardından her paketi sırayla el ile yüklemek ve Microsoft ODBC Driver 13 paketiyle tamamlamak da yaygındır.

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

Aşağıdaki bölümlerde, Linux'a Microsoft ODBC sürücüsü 11'in nasıl yükleneceği açıklanmaktadır. Sürücüyü kullanabilmeniz için unixODBC sürücü yöneticisini yükleyin. Daha fazla bilgi için bkz. Driver Manager'ı yükleme.

Yükleme adımları

Önemli

Bu yönergeler, Red Hat Linux için yükleme dosyası olan msodbcsql-11.0.2270.0.tar.gzkonusuna başvurur. SUSE Linux için yüklerseniz, dosya adı msodbcsql-11.0.2260.0.tar.gzolur.

Sürücüyü yüklemek için:

  1. Kök kullanıcı izniniz olduğundan emin olun.

  2. Sürücüyü indirin.
    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)

  3. Dosyanın indirildiği dizin olan msodbcsql-11.0.2270.0.tar.gz'ye gidin. Linux sürümünüzle eşleşen *.tar.gz dosyasına sahip olduğunuzdan emin olun. Dosyaları ayıklamak için şu komutu yürüterek işlemi tamamlayın: tar xvzf msodbcsql-11.0.2270.0.tar.gz.

  4. msodbcsql-11.0.2270.0 dizinine geçin ve burada install.shadlı bir dosya görmeniz gerekir.

  5. Kullanılabilir yükleme seçeneklerinin listesini görmek için şu komutu yürütebilirsiniz: ./install.sh.

  6. odbcinst.iniyedeğini yapın. Sürücü yüklemesi odbcinst.inigüncelleştirir. odbcinst.ini, unixODBC Sürücü Yöneticisi'ne kayıtlı sürücülerin listesini içerir. Bilgisayarınızda odbcinst.ini konumunu bulmak için şu komutu yürütebilirsiniz: odbc_config --odbcinstini.

  7. Sürücüyü yüklemeden önce şu komutu yürütebilirsiniz: ./install.sh verify. ./install.sh verify çıkışı, bilgisayarınızda Linux'ta ODBC sürücüsünü desteklemek için gerekli yazılımın bulunup bulunmadığını bildirir.

  8. Linux'ta ODBC sürücüsünü yüklemeye hazır olduğunuzda şu komutu yürütebilirsiniz: ./install.sh install. Bir yükleme komutu (bin-dir veya lib-dir) belirtmeniz gerekiyorsa, yükleme seçeneğinden sonra komutunu belirtin.

  9. Lisans sözleşmesini gözden geçirdikten sonra yüklemeye devam etmek için EVET yazın.

Kurulum, sürücüyü /opt/microsoft/msodbcsql/11.0.2270.0'a koyar. Sürücü ve destek dosyaları /opt/microsoft/msodbcsql/11.0.2270.0içinde olmalıdır.

Linux'ta Microsoft ODBC sürücüsünün başarıyla kaydedildiğini doğrulamak için şu komutu çalıştırın: odbcinst -q -d -n "ODBC Driver 11 for SQL Server".

Kaldır

Aşağıdaki komutları yürüterek Linux üzerinde ODBC sürücüsü 11'i kaldırabilirsiniz:

  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"

Sürücü dosyaları

Linux'taki ODBC sürücüsü aşağıdaki bileşenlerden oluşur:

Bileşen Açıklama
libmsodbcsql-17.X.so.X.X veya libmsodbcsql-13.X.so.X.X Sürücünün tüm işlevlerini içeren paylaşılan nesne (so) dinamik kitaplık dosyası. Bu dosya, Sürücü 17 için /opt/microsoft/msodbcsql17/lib64/ ve Sürücü 13 için /opt/microsoft/msodbcsql/lib64/ yüklenir.
msodbcsqlr17.rll veya msodbcsqlr13.rll Sürücü kitaplığı için eşlik eden kaynak dosyası. Bu dosya [driver .so directory]../share/resources/en_US/ klasörüne yüklenmiştir.
msodbcsql.h Sürücüyü kullanmak için gereken tüm yeni tanımları içeren üst bilgi dosyası.

Not: Aynı programda msodbcsql.h ve odbcss.h'ye başvuramazsınız.

msodbcsql.h, Sürücü 17 için /opt/microsoft/msodbcsql17/include/ ve Sürücü 13 için /opt/microsoft/msodbcsql/include/ yüklenir.
LICENSE.txt End-User Lisans Sözleşmesi koşullarını içeren metin dosyası. Bu dosya Sürücü 17 için /usr/share/doc/msodbcsql17/ ve Sürücü 13 için /usr/share/doc/msodbcsql/ yerleştirilir.
SÜRÜM_NOTLARI Sürüm notlarını içeren metin dosyası. Bu dosya Sürücü 17 için /usr/share/doc/msodbcsql17/ ve Sürücü 13 için /usr/share/doc/msodbcsql/ yerleştirilir.

Kaynak dosyası yükleme

Sürücünün çalışması için kaynak dosyasını yüklemesi gerekir. Bu dosya, sürücü sürümüne bağlı olarak msodbcsqlr17.rll veya msodbcsqlr13.rll olarak adlandırılır. .rll dosyasının konumu, önceki tabloda belirtildiği gibi sürücünün konumuna (so veya dylib) göredir. Sürüm 17.1'den itibaren, göreli yoldan yükleme başarısız olursa sürücü de varsayılan dizinden .rll yüklemeyi dener. Linux'ta varsayılan kaynak dosyası yolu /opt/microsoft/msodbcsql17/share/resources/en_US/.

Sorun Giderme

Sürücünün bir sürümü daha önce unixODBC'ye yüklenmiş ve kaydedilmişse, yükleme Installation failed, ODBC Driver $1 for SQL Server detected!gibi bir hatayla başarısız olabilir. Sorunu çözmek için sürücünün bu sürümünün kaydını kaldırın. Sürücülerin kaydını odbcinst komutuyla kaldırabilirsiniz: odbcinst -u -d -n "ODBC Driver $1 for SQL Server. ($1 yükleme hatasında bildirilen sürücünün sürümüyle değiştirin.) odbcinst komutuyla kaldırma işlemi başarısız olursa, sürücü bölümlerini odbcinst.ini dosyasından el ile kaldırabilirsiniz. odbcinst.ini dosyasının konumunu odbcinst -jkomutuyla bulabilirsiniz.

ODBC sürücüsünü kullanarak SQL Server'a bağlantı kurulamıyorsanızbağlantı sorunlarını giderme ile ilgili bilinen sorunlar makalesine bakın.