首页 > 数据库技术 > 详细

DB-Lib error message 20002, severity 9

时间:2019-09-10 21:54:11      阅读:374      评论:0      收藏:0      [点我收藏+]

完整报错内容:20002, b‘DB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (I0.185.43.12:1433)\n‘

 

问题描述 :在python中,使用 psmssql 连接远程数据库,报上面的错。通过别的机器连接远端机没问题,自己机器用别的工具(sqlcmd,naticat等)连接远端机也没问题,定位到问题出在本机使用pymssql 库

 

环境:win7sp1x64 + python3.5+pymssql2.1.3

 

解决方案:

  官方链接:http://www.pymssql.org/en/stable/freetds.html 

  它推荐使用tsql命令先测试一下freetds的好坏,反正pymssql也是通过freetds来连接数据库的,先排查freetds的问题。

  

  1.下载windows系统下的tsql环境

  技术分享图片

 

  2.我解压到了桌面,然后cd进了bin目录

  技术分享图片

  技术分享图片

 

  3.测试链接

  技术分享图片

 

   按照命令去连接数据库,注意 -p 1433,-D 数据路名称 -U 用户名 -P 密码

  sql默认端口都是1433,除非你特意改过,pymssql的默认端口也是这个,除非你明确的知道端口改了,否则不要动这个参数。

  回车之后要是能连上就直接连上了,证明freetds在本机是可以用的。我的机器在这里提示了一下,编码是默认的"CP936",而pymssql的默认编码是 UTF-8

  

  4 万恶的编码转换

  知道是什么问题,就可以改了,在每个pymssql.connect 时候指定charset="CP936"就行了

  技术分享图片

 

 

  搞定,不用pyodbc重写,不用重装纯净系统,不用使用pymssql的老版本然后自己编译freetds,完美

 


  这个问题困扰了很久,StackOverflow和其他论坛都没能给出满意的解决方案,可能我翻的不够细致,还是官网靠谱,没事多翻翻

 

   原创不易,如有帮助,感谢点赞。

DB-Lib error message 20002, severity 9

原文:https://www.cnblogs.com/springbrotherhpu/p/11503139.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!