zoukankan      html  css  js  c++  java
  • django更换默认数据库sqlite3为pymsql后出现Keyerror:255的解决办法----升级PyMySQL

    一、更换数据库的办法:

    1、安装PyMySQL

    2、修改project目录同名文件下的settings.py:DATABASES = {

        'default': {
    # 'ENGINE': 'django.db.backends.sqlite3', 默认的
    # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),默认的
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'hello_django_db',
    'USER': 'root',
    'PASSWORD': '1234',
    'HOST': 'localhost',
    'PORT': '3306',
    }
    }
    3、在该目录下打开__init__.py文件,添加以下语句:
     
    import pymysql
      
    pymysql.install_as_MySQLdb()

    然后运行 manage.py runserver,发现出现keyerro:255的错误;网上搜索,找到解决办法:

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

    导致上述问题的主要原因是KeyError: 255这个错误:

    
    
    Traceback (most recent call last):
      ...
      File "C:Program FilesPython36libsite-packagespymysql\__init__.py", line 90, in Connect
        return Connection(*args, **kwargs)
      File "C:Program FilesPython36libsite-packagespymysqlconnections.py", line 706, in __init__
        self.connect()
      File "C:Program FilesPython36libsite-packagespymysqlconnections.py", line 931, in connect
        self._get_server_information()
      File "C:Program FilesPython36libsite-packagespymysqlconnections.py", line 1269, in _get_server_information
        self.server_charset = charset_by_id(lang).name
      File "C:Program FilesPython36libsite-packagespymysqlcharset.py", line 38, in by_id
        return self._by_id[id]
    KeyError: 255

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

    
    
    > pip list
    Package                Version
    ---------------------- -----------
    PyMySQL                0.7.11

    更新PyMySQL为最新版,问题解决。

    
    
    
    
     
    明月装饰了你的窗子,你装饰了他的梦。
  • 相关阅读:
    前后端交互, 安装drf, restful接口规范, pycharm断点调试
    django中文设置, axios, CORS, 全局js配置, Vue配置jq + bs
    js原型, Vue项目环境搭建, Vue项目目录结构, Vue项目生命周期, 小组件使用, 全局样式, 路由跳转, 组件的生命周期钩子, 路由传参
    Vue组件
    Vue表单指令, 条件指令, 循环指令, 成员
    question1 赋值运算操作符
    CH15 面向对象程序设计
    CH12 动态内存
    CH11 关联容器
    CH10 泛型算法
  • 原文地址:https://www.cnblogs.com/zkkysqs/p/9192160.html
Copyright © 2011-2022 走看看