最近新项目要用到mssql,用了pymssql模块连接本地安装的sql server 2005,遇到一个错误,按照网上的很多解决办法都没有解决,浪费了很久的时间,最终解决了,写文记录一下。
pymssql连接数据库代码:
import pymssql conn=pymssql.connect(server='127.0.0.1',port='1433',user='sa',password='xxxx',database='wvsx') cur=conn.cursor() sqlstr="select scid,algroup,parameter,request from alerts where severity=3" cur.execute(sqlstr) data=cur.fetchall() cur.close() conn.close() print data
这段代码遇到错误如下:
Traceback (most recent call last):
File “mssqlcon.py”, line 4, in
conn=pymssql.connect(server=’127.0.0.1′,port=’1433′,user=’sa’,password=’xxxx’,database=’wvsx’)
File “pymssql.pyx”, line 556, in pymssql.connect (pymssql.c:7990)
raise OperationalError(e[0])
pymssql.OperationalError: (20009, ‘Net-Lib error during Unknown error’)
按照网上的很多解决方案,是说由于编码问题导致的,需要charset指定编码为 GB2312或UTF8来解决,按照网上的很多方法都没有解决,后来尝试修改代码如下,成功解决该问题,贴上正确代码:
import pymssql conn=pymssql.connect(server='TEST\SQLEXPRESS',port='1433',user='sa',password='xxxx',database='wvsx') cur=conn.cursor() sqlstr="select scid,algroup,parameter,request from alerts where severity=3" cur.execute(sqlstr) data=cur.fetchall() cur.close() conn.close() print data
将连接语句中的server地址修改成数据库引擎的名称,用本机ip、localhost、127.0.0.1都会产生以上的那个错误。