pymssql 报20002错误解决办法:DB-Lib error message 20002, severity 9 ...

愛在花開的季節  金牌会员 | 2023-12-31 23:00:46 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 903|帖子 903|积分 2709

python 版本:3.6  win32 版本(因为一些特殊原因必须使用3.6)
pymssql 版本:2.2.0  
 
连接数据库:
  1.     import  pymssql<br>**<br>    def InitMssql(self):
  2.         try:
  3.             host = self.IniConfig.get('default','dbhost',"host***")
  4.             user=  self.IniConfig.get('default','dbuser',"dbs***")
  5.             password =  self.IniConfig.get('default','dbpassword',"pwd***")
  6.             database =  self.IniConfig.get('default','dbdatabase',"db***")
  7.             #self.DBconn = pymssql.connect(host,user,password,database,charset="GBK")
  8.             self.DBconn = pymssql.connect(host,user,password,database)
  9.             self.DBcursor = self.DBconn.cursor()
  10.             sql = "SET TEXTSIZE 2147483647"
  11.             self.DBcursor.execute(sql)
  12.             self.DBconn.commit()
  13.         except Exception as ex:
  14.             if self.DBconn: self.DBconn.rollback()
  15.             raise ex
复制代码
 
报错信息如下:
  1. 2023-11-19 22:27:06,374 - (20002, b'DB-Lib error message 20002, severity 9:\n<br>Adaptive Server connection failed (www.***.com)\n<br>DB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (www.***.com)\n')
  2. Traceback (most recent call last):
  3.   File "src\\pymssql\\_pymssql.pyx", line 647, in pymssql._pymssql.connect
  4.   File "src\\pymssql\\_mssql.pyx", line 2109, in pymssql._mssql.connect
  5.   File "src\\pymssql\\_mssql.pyx", line 701, in pymssql._mssql.MSSQLConnection.__init__
  6.   File "src\\pymssql\\_mssql.pyx", line 1818, in pymssql._mssql.maybe_raise_MSSQLDatabaseException
  7.   File "src\\pymssql\\_mssql.pyx", line 1835, in pymssql._mssql.raise_MSSQLDatabaseException
  8. pymssql._mssql.MSSQLDatabaseException: (20002, b'DB-Lib error message 20002, severity 9:\n<br>Adaptive Server connection failed (www.*****.com)\n<br>DB-Lib error message 20002, severity 9:\n<br>Adaptive Server connection failed (www.*****.com)\n')
  9. During handling of the above exception, another exception occurred:
复制代码
 
尝试解决1:加charset参数,失败

在网上搜相关信息,发现信息量很少,偶尔提到的解决方案都是加 charset参数。
譬如:
1、DB-Lib error message 20002, severity 9 - chungehpu - 博客园 (cnblogs.com)  加连接参数 charset="CP936"
2、DB-Lib error message 20002, severity 9_pymssql._pymssql.operationalerror: (20002, b'db-li-CSDN博客 也是加连接参数 charset="CP936"
3、还有github上SQL Server database encoding (GBK) is not consistent with python · Issue #820 · pymssql/pymssql · GitHub 加连接参数 charset="GBK" 
尝试加连接参数,再次报同样的错误。
尝试解决2:切换到python3.4,成功。

切换到python3.4,不加charset写法,结果成功。
最终解决方案:python3.6,安装pymssql低版本(pymssql-2.1.5-cp36-cp36m-win32.whl),成功

到 Archived: Python Extension Packages for Windows - Christoph Gohlke (uci.edu) 找到pymssql 2.1.5 ,卸载原有的高版本,手工安装whl。
成功!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

愛在花開的季節

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表