【问题标题】:Install Microsoft ODBC Driver 13 for SQL Server in Ubuntu 16.04在 Ubuntu 16.04 中安装 Microsoft ODBC Driver 13 for SQL Server
【发布时间】:2017-07-25 09:47:27
【问题描述】:

我正在尝试在 Ubuntu 16.04 上安装 ODBC 驱动程序 13,但安装后仍然缺少驱动程序。我按照this page的步骤操作,但是当我想连接时,驱动程序仍然丢失。

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

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

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

【问题讨论】:

  • 我已经使用here 的说明在 Ubuntu 16.04 上安装了 13.1 版本的驱动程序,并且每次都运行良好。您引用的 shell 脚本很旧,不应再使用。我建议您在 Microsoft Docs 页面上重试 16.04 的每个步骤,并留意可能出现的任何错误消息。
  • 感谢@GordThompson 的回答,我按照步骤安装了 Ubuntu 16.04 的 13.1 版本。但是,当我想在 python 中连接到服务器时,我仍然收到此错误:“错误('01000',”[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 13.1 for SQL Server':文件未找到 (0) (SQLDriverConnect) ")"
  • 当您运行odbcinst -j 时,您看到DRIVERS............: /etc/odbcinst.ini 了吗? pyodbc.drivers() 仍然返回一个空列表吗?
  • 是:这是 odbcinst -j 的输出:unixODBC 2.3.4 DRIVERS............: /etc/odbcinst.ini SYSTEM DATA SOURCES: /etc/odbc.ini FILE DATA SOURCES..: /etc/ODBCDataSources USER DATA SOURCES..: /home/samin/.odbc.ini SQLULEN Size.......: 8 SQLLEN Size........: 8 SQLSETPOSIROW Size.: 8
  • 而且 pyodbc.drivers() 的输出仍然是一个空数组:(

标签: python sql-server ubuntu odbc pyodbc


【解决方案1】:

https://www.microsoft.com/en-us/sql-server/developer-get-started/python/ubuntu/ 上有关于如何在 Ubuntu 上为 Python 开发设置 SQLServer 和 ODBC 的最新说明

这由 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

【讨论】:

  • 感谢@GordThompson 的回答,我还说我试过了,一切顺利,没有任何错误,但是当我想连接这个文件时,这个文件不存在 -> ./opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.1.so.9‌​‌​.0. 了解更多信息,我正在使用 pyodbc 4.0 .17 和 python 3.6.2。
【解决方案2】:

您需要通过创建~/.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‌​)。

【讨论】:

  • 谢谢。该路径和文件存在,那为什么我的Ubuntu 16.04,PHP7.0 不使用sql 来理解mssql? PHP7.0真的根本就不会理解mssql,不管提供ODBC吗?
猜你喜欢
  • 1970-01-01
  • 2018-03-26
  • 2021-03-09
  • 2018-08-14
  • 2017-10-06
  • 1970-01-01
  • 2017-12-13
  • 1970-01-01
  • 2018-02-23
相关资源
最近更新 更多