一、更换数据库的办法:
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 Files\Python36\lib\site-packages\pymysql\__init__.py", line 90, in Connect return Connection(*args, **kwargs) File "C:\Program Files\Python36\lib\site-packages\pymysql\connections.py", line 706, in __init__ self.connect() File "C:\Program Files\Python36\lib\site-packages\pymysql\connections.py", line 931, in connect self._get_server_information() File "C:\Program Files\Python36\lib\site-packages\pymysql\connections.py", line 1269, in _get_server_information self.server_charset = charset_by_id(lang).name File "C:\Program Files\Python36\lib\site-packages\pymysql\charset.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为最新版,问题解决。