【问题标题】:Error while connecting from Ubuntu to remote SQL Server Express database (on Windows)从 Ubuntu 连接到远程 SQL Server Express 数据库时出错(在 Windows 上)
【发布时间】:2016-12-29 19:41:23
【问题描述】:

我使用的是 Ubuntu 系统,我想连接到远程数据库 SQL Express。

我已经尝试使用 pyodbc 使用以下步骤。

  1. sudo apt-get install python-pyodbc
  2. Python代码如下:

    import pyodbc
    cnxn = pyodbc.connect(DRIVER='{SQL Server}', SERVER='REMOTE_SERVER_IP', DATABASE='REMOTE_SERVER_DB_NAME', UID='redbytes', PWD='REMOTE_SERVER_DB_PASSWORD')
    cursor = cnxn.cursor()

但我面临以下问题:

pyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnect)')

【问题讨论】:

  • 如果您使用的是 Ubuntu,您使用的是 FreeTDS 还是 MS ODBC 驱动程序?您将需要一个驱动程序(我推荐 FreeTDS)来告诉 unixODBC 如何连接到 SQL Server。我还建议不要安装任何 Python 包的“apt-get”,它们已经过时了;而是将 pip install pyodbc 放入 virtualenv。
  • 我正在使用 FreeTDS 并且只使用了 pip install

标签: python sql-server ubuntu-14.04 pyodbc


【解决方案1】:

pyodbc 只是难题的一部分。唯一的工作是允许您的 Python 应用程序与 ODBC 子系统(“驱动程序管理器”)进行通信。该层与 ODBC 驱动程序通信,后者又与数据库通信。

为了在 Ubuntu 上使用 Python_3 + pyodbc + unixODBC(ODBC 驱动程序管理器)+ FreeTDS(ODBC 驱动程序),基本步骤是:

sudo su
apt install python3-pip unixodbc-dev tdsodbc
printf "\n[FreeTDS]\nDriver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so\n" >> /etc/odbcinst.ini 
exit
pip3 install --user pyodbc

然后在您的 ODBC 连接字符串中使用 DRIVER=FreeTDS(以及 SERVER= 和其他必需的参数)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-23
    • 2018-11-04
    • 1970-01-01
    • 2018-03-13
    相关资源
    最近更新 更多