在Ubuntu中安装Microsoft ODBC驱动程序13 for SQL Server 16.04

问题描述:

我想在Ubuntu 16.04上安装ODBC驱动程序13,但是在安装后仍然缺少驱动程序。我遵循this page的步骤,但是当我想连接时,驱动程序仍然丢失。在Ubuntu中安装Microsoft ODBC驱动程序13 for SQL Server 16.04

下面的代码也返回空数组:

import pyodbc 
print(pyodbc.drivers()) 

此外,当我想安装通过:

wget https://gallery.technet.microsoft.com/ODBC-Driver-13-for-Ubuntu-b87369f0/file/154097/2/installodbc.sh 

installodbc.sh内下方的部分让我无法找到./install.sh错误:

echo "Installing the Microsoft ODBC Driver 13 for SQL Server- Ubuntu" 
sudo bash ./install.sh install --force --accept-license 
echo "Cleaning up" 
rm -rf /tmp/msodbcubuntu 

有谁知道如何解决这个问题问题?我在互联网上尝试了所有可能的答案,但仍然缺少驱动程序,我无法建立连接。

+0

我已经在Ubuntu 16.04上多次使用[这里]的说明安装了13.1版本的驱动程序(https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing- -sql-server-microsoft-odbc-driver-for-sql-server#microsoft-odbc-driver-131-for-sql-server),它对我来说每次都很好。你引用的shell脚本很老,不应该再使用。我建议您在Microsoft Docs页面上重试16.04的每个步骤,并留意可能出现的任何错误消息。 –

+0

感谢您的答案@GordThompson我按照步骤安装Ubuntu 16.04的13.1版本。但是,当我想连接到服务器在Python中,我仍然得到这个错误:“错误('01000',”[01000] [unixODBC] [驱动程序管理器]无法打开lib的'SQL Server的ODBC驱动程序13.1':文件找不到(0)(SQLDriverConnect)“)” – sss

+0

当你运行'odbcinst -j'时你会看到'DRIVERS ............:/ etc/odbcinst.ini'吗?并且'pyodbc.drivers()'仍然返回一个空列表? –

有多达如何在https://www.microsoft.com/en-us/sql-server/developer-get-started/python/ubuntu/

此设立的SQLServer和ODBC在Ubuntu Python的开发是由SQL Server产品团队保持最新说明。

安装ODBC的最新指令可以在 https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#microsoft-odbc-driver-131-for-sql-server

+0

谢谢你的回答,因为@GordThompson也说过我没有任何错误,但是当我想连接这个文件的时候它已经不存在了 - >'./opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.1.so.9 .0.'获取更多信息我正在使用pyodbc 4.0.17和python 3.6.2。 – sss

您需要的路径配置到驱动程序通过创建~/.odbcinst.ini,如发现

[ODBC Driver 13 for SQL Server] 
Description=Microsoft ODBC Driver 13 for SQL Server 
Driver=/usr/local/lib/libmsodbcsql.13.dylib 

注意:以上是从macOS获取的示例。

其中/usr/local/lib/libmsodbcsql.13.dylib是您的libmsodbcsql库文件的文件路径(例如,在Linux上它是libmsodbcsql-13.1.so.9‌​‌​.0‌​)。