【问题标题】:Unable to connect SQL server via python from Linux machine无法从 Linux 机器通过 python 连接 SQL 服务器
【发布时间】:2017-02-08 15:32:14
【问题描述】:

我们在从 Linux 机器连接到 SQL Server 时遇到以下错误。

('IM002', '[IM002] [unixODBC][驱动管理器]数据源名称不 已找到,但未指定默认驱动程序')

你能帮帮我吗?

这是代码,

odbc.ini

[sqlserverdatasource]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
Trace = No
Servername = Name
Database = DatabaseName

--------------------
odbcinst.ini

[FreeTDS]
Description = TDS driver
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
CPTimeout =
CPReuse =
FileUsage = 1

connection_string = 'DSN=sqlserverdatasource;DRIVER={FreeTDS}; SERVER=Name;PORT=1433;DATABASE=DatabaseName; UID=UserName; PWD=UserPassword;'

【问题讨论】:

  • 向我们展示您的代码
  • 我们已经添加了代码。

标签: python sql sql-server linux


【解决方案1】:

我建议您使用 ODBC 驱动程序。

安装方法如下:

Ubuntu 16.04

sudo su 
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql unixodbc-dev

RHEL 7

sudo su
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo
exit
sudo ACCEPT_EULA=Y yum install -y msodbcsql unixODBC-devel 

一旦您安装了驱动程序,您就可以如上所述创建您的 odbc.ini。

如果您使用其他 Linux 发行版,请查看此博客了解更多详细信息:https://blogs.msdn.microsoft.com/sqlnativeclient/2017/02/04/odbc-driver-13-1-for-linux-released/

如果您尝试使用 pyodbc,这里是一个入门指南:https://www.microsoft.com/en-us/sql-server/developer-get-started/python-ubuntu

【讨论】:

    【解决方案2】:

    如果您正在使用 python:

    尝试使用 pytds,它可以在比 pyodbc 更复杂的环境中工作,并且更容易设置。

    我让它在 Ubuntu 18.04 上运行

    参考:https://github.com/denisenkom/pytds

    文档中的示例代码:

    import pytds
    with pytds.connect('server', 'database', 'user', 'password') as conn:
        with conn.cursor() as cur:
            cur.execute("select 1")
            cur.fetchall()
    

    【讨论】:

      【解决方案3】:

      不确定这是否有帮助,但您可以尝试为 SQL Server 安装新的 Microsoft odbc 驱动程序:“msodbcsql”
      更多详情在这里:https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-14
        • 1970-01-01
        • 2019-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-13
        • 1970-01-01
        相关资源
        最近更新 更多