美文网首页
【Django using MySQL on Windows S

【Django using MySQL on Windows S

作者: 焜_8899 | 来源:发表于2020-04-21 19:53 被阅读0次

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服务器就没问题了。

相关文章

网友评论

      本文标题:【Django using MySQL on Windows S

      本文链接:https://www.haomeiwen.com/subject/ygmpihtx.html