【Django using MySQL on Windows S

2020-04-21  本文已影响0人  焜_8899

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暂时还不支持这种新增的加密方式。

所以

只需要将用户加密方式改为老的加密方式即可。

解决方法:

  1. 登陆MySQL后查看当前的加密方式
mysql> use mysql;
mysql> select user, plugin from user where user='root';
  1. 修改加密方式
mysql> alter user ‘root’@‘localhost’ identified with mysql_native_password by '密码';
  1. 重新加载权限表使配置生效
mysql> flush privileges;

(4.) 修改后可再次执行1.查看修改后的结果。

再次启动Django服务器就没问题了。

上一篇 下一篇

猜你喜欢

热点阅读