Software

ubuntu ODBC Can’t open lib ‘SQL Server’ : file not found

幸好 microsoft 在說明上一直都做得不錯,所以基本上安裝 ODBC 沒什麼卡關的問題

sudo su
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
#Download appropriate package for the OS version
#Choose only ONE of the following, corresponding to your OS version

#Ubuntu 14.04
curl https://packages.microsoft.com/config/ubuntu/14.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

#Ubuntu 16.04
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

#Ubuntu 18.04
curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

#Ubuntu 18.10
curl https://packages.microsoft.com/config/ubuntu/18.10/prod.list > /etc/apt/sources.list.d/mssql-release.list

exit

sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install msodbcsql17
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y apt-get install mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers sudo apt-get install unixodbc-dev

官網上面還有很多 OS 的安裝方式
https://docs.microsoft.com/zh-tw/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-2017

===========我是友善的分割線===========

直到這段之前都沒什麼問題,但是下面就發生問題了
安裝完執行 PHP 的連結出現了
[unixODBC][Driver Manager]Can't open lib 'SQL Server' : file not found
一開始還以為該死的 MS 又亂寫教學了,但使用 tsql 測試可以連線沒問題的
後來經過一番折騰之後才發現是 Driver ODBC version name 的問題
原來要到 /etc/odbcinst.ini 去看一下現在版本名稱然後將
Driver=SQL Server 改成 Driver=ODBC Driver 17 for SQL Server <=== 新的版本名稱

我猜主要是因為這個 code 原本是放在 Windows OS 上面,所以直接使用 SQL Server 這個名稱
但是後來改到 ubuntu 之後不叫這個名稱才導致找不到 ODBC Driver