1. 说明
使用
Python 3.7.4
Django 3.0.5
MySQL 8.0
Windows Server 2016 数据中心版 64位中文版
腾讯云服务器
2. MySQL部分
2.1 新建数据库
指定了字符集为utf8,排序规则为utf8_general_ci。
mysql> CREATE DATABASE 数据库名 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
2.2 导入数据
已提前将所需数据从已有数据库导出到了.sql文件中。
mysql> USE 数据库名;
mysql> SOURCE 路径/文件名.sql
注意需要将路径中的“\”改为“/”。
2.3 查看数据
此时,当查看数据时,中文可能还会是乱码。
解决方法:
mysql> set names gbk;
虽然先前指定了字符集为utf8,但这里仍须设为gbk。
目前还不清楚原因。
3. Django部分
在尝试
python manage.py runserver
的时候,出现报错
django.db.utils.OperationalError: (2059, <NULL>)
查到原因说
最新的mysql8.0对用户密码的加密方式为caching_sha2_password,django暂时还不支持这种新增的加密方式。
所以
只需要将用户加密方式改为老的加密方式即可。
解决方法:
- 登陆MySQL后查看当前的加密方式
mysql> use mysql;
mysql> select user, plugin from user where user='root';
- 修改加密方式
mysql> alter user ‘root’@‘localhost’ identified with mysql_native_password by '密码';
- 重新加载权限表使配置生效
mysql> flush privileges;
(4.) 修改后可再次执行1.查看修改后的结果。
再次启动Django服务器就没问题了。
网友评论