首页 > 系统加固 > Other > 解决:pymssql.OperationalError
2014
08-16

解决:pymssql.OperationalError

最近新项目要用到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 <module>
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都会产生以上的那个错误。

最后编辑:
作者:admin
这个作者貌似有点懒,什么都没有留下。

解决:pymssql.OperationalError》有 1 条评论

  1. teemo 说:

    牛人 终于找到你的基地了- –

留下一个回复

你的email不会被公开。