python链接sql报错_python3.7连接sqlserver数据库失败报错20002, DB-Lib error message 20002

python3.7连接sqlserver数据库失败报错后解决方法

1、连接数据库脚本

这是我连接sqlserver和mysql的代码;数据库连接信息是调用config.ini文件的信息;调用config.ini文件的信息的脚本不在这描述了

def get_conn(self):

try:

if self.sqltype == 'SqlServer':

conn = pymssql.connect(host=self.host, port=self.port, user=self.user, password=self.passwd,

database=self.database, charset=self.charset,autocommit=True)

else:

conn = pymysql.connect(host=self.host, port=self.port, user=self.user, password=self.passwd,

database=self.database, charset=self.charset,autocommit=True)

print('数据库已连接!')

return conn

except Exception as e:

print('%s', e)

config.ini配置文件里数据库信息样式如下:

[数据库名称xxxx]

host = xxxx

port = xxxx

user = xxxx

passwd = xxxx

db = xxxx

charset = xxxx

sqltype = SqlServer(可自行标记,为了区分连接哪种数据库的标志)

或者

[数据库名称xxxx]

host = xxxx

port = xxxx

user = xxxx

passwd = xxxx

db = xxxx

charset = xxxx

sqltype = MySql(可自行标记,为了区分连接哪种数据库的标志)

2、连接sqlserver数据库失败,报错信息如下:

4e094b1bb40f43e4b63dc086d444a0ac.jpg%s (20002, b’DB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (ip:port)\n’)

出现问题的原因:charset未配置或者配置错误,都会导致数据库连接失败,报上面的问题;

解决问题的方案:在 connect代码里设置连接数据库正确的charset,就可以连接上了;我连接数据库时charset=utf8报错了,然后将charset=CP936或者GBK(注意大小写)就能正常连接了

sqlserver数据库查询charset名称语句:select SERVERPROPERTY('Sqlcharsetname')

MySql数据库查询charset语句:show variables like '%character%',请参考该大神的博客:https://blog.csdn.net/huzecom/article/details/100089325?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值