一、环境:
1.语言:python2.7.13
2.系统:win7
3.数据库:mysql 8.0
二、问题描述:
今天在部署一个客户程序的时候出现KeyError:255,主要是pymysql连接数据库的时候出现报错。
三、解决方案:
1.卸载旧版pymysql库换成新版pymysql库。注意:因为新版的pymysql库已经不支持python2了,所以要想不换python版本,又要解决问题看方案2.
2.更改pymysql源码(从国外网站上看到的)
去pymysql安装包中找到这个文件connectors.py(一般路径是这个..\Lib\site-packages\pymysql)
Original (lines 1268-1269)
self.server_language = lang
self.server_charset = charset_by_id(lang).name
Replace (lines 1268 - 1272)
self.server_language = lang
try:
self.server_charset = charset_by_id(lang).name
except KeyError:
self.server_charset = None
大概的意思把异常屏蔽了,如果出现这个异常就将值设置为None
3.如果有网络条件的的话,也可以尝试用这个方式。卸载就的包,安装新的包。注意:大部分python2的pip是旧的,再更新新的包前,先程序pip.
python -m pip uninstall pymysql
python -m pip install pymsyql