无法使用 pyodbc 连接到 MS SQL

无法使用 pyodbc 连接到 MS SQL

我花了几个小时试图完成一个简单的任务。我有在 Windows 中运行的 Python 代码,它访问 Windows Server 2008 上的 MS SQL 数据库。我设置了一个 ubuntu 服务器并想在这个服务器上运行这个脚本。在安装了 pyodbc、freetds 和一堆其他包后,我仍然无法连接到数据库。我使用的 Windows 连接字符串是:

connectionString='DRIVER={SQL Server};SERVER=IP;DATABASE=Market;UID=usr;PWD=psw

经过大量研究后,我最终得到了三个连接文件 odbc.ini、odbcinst.ini 和 freetds.conf,它们分别如下所示:

odbc.ini:

[sqlserverdatasource] 驱动程序 = FreeTDS 描述 = 通过 FreeTDS 的 ODBC 连接 跟踪 = 否 服务器名称 = sqlserver 数据库 = Market;

odbcinst.ini

[FreeTDS] 描述 = TDS 驱动程序(Sybase/MS SQL) 驱动程序 = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so 设置 = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so CPTimeout = CPReuse = FileUsage = 1

freetds配置文件

[sqlserver]主机 = 10.23.11.10;端口 = 1433;tds 版本 = 5.0

现在我一直在尝试使用以下命令测试连接

tsql -S sqlserver

但我收到以下错误

错误 20017(严重性 9):服务器出现意外的 EOF 操作系统错误 115,“操作正在进行中” 错误 20002(严重性 9):Adaptive Server 连接失败

我以为只需要几分钟就可以完成它,但我已经浪费了很多时间。如能得到任何帮助我将不胜感激。谢谢。

答案1

如果你尝试从 Linux 计算机连接到 SQL Server,我强烈建议你点击此链接https://azure.microsoft.com/en-us/documentation/articles/sql-database-develop-python-simple-ubuntu-linux/

这使用另一个 python 驱动程序 pymssql,该驱动程序使用 FreeTDS 连接到 SQL Server。如果有帮助,请告诉我。

最好的,
见面

答案2

最近,我们在 Python 3.3 上使用 pyODBC 3.0.7 开发并测试了我们的 SQL Server ODBC 驱动程序,连接成功。一切正常。

尝试下载最新的 pyODBC 驱动程序https://github.com/mkleehammer/pyodbc 和这个SQL Server ODBC 驱动程序
文档中有一个连接字符串示例。您可以使用它。

答案3

我经常使用 python 连接数据库。我的连接字符串如下:

连接字符串='DSN=MyDSN'

DSN 代表并且其详细信息以您使用的形式Data source Name存储在文件中:odbc.ini

[我的DSN]

驱动程序 = FreeTDS

描述 = 通过 FreeTDS 进行 ODBC 连接

痕迹 = 无

服务器名称 = sqlserver

数据库 = 市场

用户 = DB用户

密码 = yourpwd

相关内容