pymssql连接失败

问题描述:

我尝试连接到SQL Server 2012的分贝python3(3.5.3)库pymssql(2.1.3) “无法识别归类” 这个错误发生了:pymssql连接失败

conn = pymssql.connect(host="192.168.xxx.xxx", user="wbs", password="[email protected]", database="mydb") 
Traceback (most recent call last): 
    File "pymssql.pyx", line 635, in pymssql.connect (pymssql.c:10734) 
    File "_mssql.pyx", line 1902, in _mssql.connect (_mssql.c:21821) 
    File "_mssql.pyx", line 637, in _mssql.MSSQLConnection.__init__ (_mssql.c:6581) 
    File "_mssql.pyx", line 1630, in _mssql.maybe_raise_MSSQLDatabaseException (_mssql.c:17524) 
_mssql.MSSQLDatabaseException: (4075, b'DB-Lib error message 20018, severity 16:\nGeneral SQL Server error: Check messages from the SQL Server\nDB-Lib error message 20018, severity 14:\nGeneral SQL Server error: Check messages from the SQL Server\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (192.168.100.249:1433)\n') 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "pymssql.pyx", line 641, in pymssql.connect (pymssql.c:10824) 
pymssql.OperationalError: (4075, b'DB-Lib error message 20018, severity 16:\nGeneral SQL Server error: Check messages from the SQL Server\nDB-Lib error message 20018, severity 14:\nGeneral SQL Server error: Check messages from the SQL Server\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (192.168.100.249:1433)\n') 

和MSSQL错误有一个日志吧:

The USE database statement failed because the database collation %.*ls is not recognized by older client drivers. Try upgrading the client operating system or applying a service update to the database client software, or use a different collation. See SQL 

默认情况下,PIP从静态链接到freetds的0.95二进制轮(.whl)文件安装pymssql 2.1.3。不幸的是,FreeTDS的旧版本不知道如何使用一些不常用的SQL Server排序规则。例如,已知Persian_100_CI_AI会导致类似于FreeTDS 0.9x(参考:here)中描述的错误。

freetds的1.x中对那些归类更好的支持,所以其中一个方案是为您安装freetds的(目前1.00.51)最新的稳定版本,然后建立从最新的源pymssql上GitHub

或者,您可以尝试使用pyodbc与当前版本的Microsoft SQL Server ODBC驱动程序。

+0

非常感谢,我编译和安装freetds最新的稳定和pimssql最新从git,一切都OK! – alireza