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), Ubuntu ve Azure Linux'tur. Sürüm 18.4'den başlayarak, Alpine Linux (veya .deb) olmayan sürücüyü yüklerken Son Kullanıcı Lisans Sözleşmesi'ni (.rpmEULA) otomatik olarak kabul etmek için dosyasını /opt/microsoft/msodbcsql18/ACCEPT_EULAoluş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/0b3d5518-b4a7-4a2b-afc7-7ee9e967f93c/msodbcsql18_18.6.2.1-1_$architecture.apk
curl -O https://download.microsoft.com/download/cad0d30f-b9b1-4765-a011-81d8a66c8b8d/mssql-tools18_18.6.2.1-1_$architecture.apk

#(Optional) Verify signature, if 'gpg' is missing install it using 'apk add gnupg':
curl -O https://download.microsoft.com/download/0b3d5518-b4a7-4a2b-afc7-7ee9e967f93c/msodbcsql18_18.6.2.1-1_$architecture.sig
curl -O https://download.microsoft.com/download/cad0d30f-b9b1-4765-a011-81d8a66c8b8d/mssql-tools18_18.6.2.1-1_$architecture.sig

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

#Install the package(s)
sudo apk add --allow-untrusted msodbcsql18_18.6.2.1-1_$architecture.apk
sudo apk add --allow-untrusted mssql-tools18_18.6.2.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ılabilir olan v17 msodbcsql paketini yüklediyseniz, çakışmaları önlemek için paketi yüklemeden msodbcsql17 önce paketi kaldırın. msodbcsql17 paketini msodbcsql v13 paketiyle yan yana yükleyebilirsiniz.

#Download the desired package(s)
curl -O https://download.microsoft.com/download/607ebe2c-e17c-4c34-b367-10a75b83bef9/msodbcsql17_17.11.1.1-1_amd64.apk
curl -O https://download.microsoft.com/download/aca0282f-6a67-49c0-ae08-887d59d16d1a/mssql-tools_17.11.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/607ebe2c-e17c-4c34-b367-10a75b83bef9/msodbcsql17_17.11.1.1-1_amd64.sig
curl -O https://download.microsoft.com/download/aca0282f-6a67-49c0-ae08-887d59d16d1a/mssql-tools_17.11.1.1-1_amd64.sig

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

#Install the package(s)
sudo apk add --allow-untrusted msodbcsql17_17.11.1.1-1_amd64.apk
sudo apk add --allow-untrusted mssql-tools_17.11.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

ODBC 13 için ç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, Ubuntu ve SUSE.

Tüm bağımlı paketleri el ile indirebilir ve bunları yükleme bilgisayarına yerleştirebilirsiniz. Ardından, Microsoft ODBC Driver 13 paketini tamamlayarak her paketi sırayla el ile yükleyin.

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 . Sürücü Yöneticisi'ni 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.

    Dağıtım Driver SHA256 özeti
    Red Hat 5 msodbcsql-11.0.2270.0.tar.gz 178280daf01a49b8322cd902b6440979adacd594c01cd2a1f081dda23dbfb343
    Red Hat 6 msodbcsql-11.0.2270.0.tar.gz e9b6bd33d174c7753b3a3f2d541713fbc156b46254484a169caa3f459dd828f7
    SUSE Linux msodbcsql-11.0.2260.0.tar.gz 86d1c5842be4f0095234a9455e18a04fdf4cc7960ec0255b37258112e2391ef5
  3. Dosyanın indirildiği dizin olan msodbcsql-11.0.2270.0.tar.gz'ye gidin. Linux sürümünüzle *.tar.gz eşleşen bir dosyaya sahip olduğunuzdan emin olun. Dosyaları ayıklamak için aşağıdaki komutu çalıştırın:

    tar xvzf msodbcsql-11.0.2270.0.tar.gz
    
  4. Dizine msodbcsql-11.0.2270.0 geçin. adlı install.shbir dosya görmeniz gerekir.

  5. Kullanılabilir yükleme seçeneklerinin listesini görmek için aşağıdaki komutu çalıştırın:

    ./install.sh
    
  6. odbcinst.ini öğesinin yedeğini alın. Sürücü yüklemesi güncelleştirilir odbcinst.ini. 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 aşağıdaki komutu çalıştırın:

    odbc_config --odbcinstini
    
  7. Sürücüyü yüklemeden önce aşağıdaki komutu çalıştırın:

    ./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 komutunu çalıştırın:

    ./install.sh install
    

    Bir yükleme komutu (bin-dir veya lib-dir) belirtmeniz gerekiyorsa, seçeneğin install ardından komutu belirtin.

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

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 üzerinde Microsoft ODBC sürücüsünün başarıyla kaydedildiğini doğrulamak için aşağıdaki komutu çalıştırın:

odbcinst -q -d -n "ODBC Driver 11 for SQL Server"

Kaldır

Aşağıdaki komutları çalıştırarak Linux'ta ODBC sürücüsü 11'i kaldırın:

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"

Sürücü dosyaları

Linux'taki ODBC sürücüsü aşağıdaki bileşenleri içerir:

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ı. Yükleme yolu /opt/microsoft/msodbcsql17/lib64/ Sürücü 17 ve /opt/microsoft/msodbcsql/lib64/ Sürücü 13 içindir.
msodbcsqlr17.rll veya msodbcsqlr13.rll Sürücü kitaplığına eşlik eden kaynak dosyası. Yükleme yolu şu şekildedir: [driver .so directory]../share/resources/en_US/
msodbcsql.h Sürücüyü kullanmak için gereken tüm yeni tanımları içeren üst bilgi dosyası.

Not:msodbcsql.h ve odbcss.h'e aynı programda referans veremezsiniz.

Yükleme yolu /opt/microsoft/msodbcsql17/include/ Sürücü 17 ve /opt/microsoft/msodbcsql/include/ Sürücü 13 içindir.
LICENSE.txt End-User Lisans Sözleşmesi koşullarını içeren metin dosyası. Yükleme yolu /usr/share/doc/msodbcsql17/ Sürücü 17 ve /usr/share/doc/msodbcsql/ Sürücü 13 içindir.
RELEASE_NOTES Sürüm notlarını içeren metin dosyası. Yükleme yolu /usr/share/doc/msodbcsql17/ Sürücü 17 ve /usr/share/doc/msodbcsql/ Sürücü 13 içindir.

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. Dosyanın konumu .rll , önceki tabloda açıklandığı gibi sürücünün konumuna (so veya dylib) göredir. Sürüm 17.1'den başlayarak, sürücü .rll dosyasını göreli yoldan yükleyemiyorsa, .rll dosyasını varsayılan dizinden de yüklemeyi dener. Linux'ta varsayılan kaynak dosyası yolu /opt/microsoft/msodbcsql17/share/resources/en_US/.

Sorun Giderme

Önceki sürücü sürümü çakışması

Daha önce unixODBC ile bir sürücü sürümü yüklediyseniz ve kaydettiyseniz, yükleme aşağıdakine benzer bir hatayla başarısız olabilir:

Installation failed, ODBC Driver $1 for SQL Server detected!

Sorunu çözmek için komutunu kullanarak odbcinst sürücünün bu sürümünün kaydını kaldırın. Yükleme hatasında bildirilen sürücünün sürümüyle $1 değerini değiştirin.

odbcinst -u -d -n "ODBC Driver $1 for SQL Server"

komutunu kullanarak odbcinst kaldırma işlemi başarısız olursa, sürücü bölümlerini dosyadan odbcinst.ini el ile kaldırabilirsiniz. komutunu odbcinst.inikullanarak dosyanın konumunu odbcinst -j bulabilirsiniz.

Debian ve Ubuntu'da paket indirme hataları

Debian tabanlı dağıtımlarda, paketi yüklerken packages-microsoft-prod.deb aşağıdaki hatayı görebilirsiniz:

dpkg-deb: error: 'packages-microsoft-prod.deb' is not a Debian format archive

Bu hata genellikle indirilen dosyanın bozuk veya eksik olduğu, genellikle bir ağ kesintisi veya ara sunucu sorunundan kaynaklandığı anlamına gelir. Sorunu çözmek için:

  1. Bozuk dosyayı silin ve yeniden indirin. Ubuntu için:

    rm packages-microsoft-prod.deb
    curl -sSL -O https://packages.microsoft.com/config/ubuntu/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2)/packages-microsoft-prod.deb
    

    Debian için ubuntu kalıbını değiştirin ve yalnızca ana sürüm numarasını kullanın.

    rm packages-microsoft-prod.deb
    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
    
  2. İndirme işleminin geçerli bir Debian paketi olduğunu doğrulayın (çıktı şunları içermelidir Debian binary package):

    file packages-microsoft-prod.deb
    
  3. İndirme başarısız olursa ağ bağlantınızı ve ara sunucu ayarlarınızı denetleyin veya yerine wgetkullanıncurl:

    wget https://packages.microsoft.com/config/ubuntu/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2)/packages-microsoft-prod.deb
    

Bağlantı sorunları

ODBC sürücüsünü kullanarak SQL Server'a bağlantı oluşturamıyorsanız, bağlantı sorunlarını gidermeyle ilgili bilinen sorunlar makalesine bakın.