前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pymysql connect 连接mysql 报错keyerror255

pymysql connect 连接mysql 报错keyerror255

作者头像
诡途
发布2020-10-16 10:06:52
1.6K0
发布2020-10-16 10:06:52
举报
文章被收录于专栏:诡途的python路

摘要

pymysql connect 连接mysql 报错keyerror255;最近困了我两个多月的一个难题,搜这个标题进来的都可以看到搜索引擎提供了n^2篇解决方法的文章,那为什么还会困住我这么久呢?我不会百度吗?NO NO NO!!最大的问题是我的执行电脑和数据存储电脑不是同一台电脑!!

报错信息

代码语言:javascript
复制
  File "D:\Programfiles\Anaconda3\lib\site-packages\pymysql\connections.py", line 1269, in _get_server_information
    self.server_charset = charset_by_id(lang).name
  File "D:\Programfiles\Anaconda3\lib\site-packages\pymysql\charset.py", line 38, in by_id
    return self._by_id[id]
KeyError: 255

主要原因是MySQL8.0更新了很多字符集,但是这些字符集长度超过255了,所以旧版的PyMySQL不支持长度超过255的字符

网上可以查到很多解决这个问题的文章,方案一致,更新pymysql

代码语言:javascript
复制
pip install --upgrade pymysql

下面随便放了一篇,有兴趣的可以看看,不看也无所谓,全文总结就一句话更新pymysql,直接执行上面的更新代码,如果解决,ok !万事大吉,可以退出了,解决不了,放的这个链接文章看了意义也不大,继续往下看我的正文吧

django更换默认数据库sqlite3为pymsql后出现Keyerror:255的解决办法----升级PyMySQL

解决方案

正如前面所说,我的执行电脑和数据存储电脑不是同一台电脑!! 我自己电脑是mysql5.7,数据存储电脑版本是8.1 因为一开始公司网络安全升了次级,然后公司内网也更新了一次(大换血,界面都不一样了), 所以我一开始以为是网络安全策略导致的, 毕竟看网上全部是更新pymysql就行了,我已经最新了没法再新了

解决方案其实也就一句话,懒得绕弯子打那么多字了

  • 卸载重装Mysql

对!你没看错!就是Mysql数据库卸载了,然后重新装个8.0及以上版本的

所以主要原因还是一开始说的MySQL8.0更新了很多字符集,但是这些字符集长度超过255了

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/09/17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 摘要
  • 报错信息
  • 解决方案
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档