一、Django 和 MySQL 版本兼容问题
1、Django2.0 后均不再支持 Python2,Django2.0是最后一个支持Python3.4的版本。
2、Django2.1 不再支持MySQL 5.5,必须MySQL 5.6版本以上
二、Nginx 在 python 虚拟环境中遇到的问题
1、需要在 settings.py 同级目录下的 __init__.py 中添加 虚拟路径包目录和包引入
import sys
sys.path.append("/web/env/ims/lib/python3.6/site-packages") # 虚拟环境包目录
import pymysql
pymysql.install_as_MySQLdb()
2、上线后出现问题不会打印在屏幕上,需要查看错误日志。
3、建立 requirements.txt 文件,在虚拟环境中更便捷的搭建环境,使用安装命令安装:
pip install -r requirements.txt
mysqlclient==1.3.13
django==2.1.1
PyMySQL==0.9.2
三、Navicat连接服务器MySQL数据库出现的问题
1、Host is not allowed to connect to this MySQL server
【描述】数据库连接不被运行,原因在于权限管理中没有主机IP
【解决】
① use mysql;
② select host,user from user;
③ update user set host='%' where user='root';
④ flush privileges;
2、Authentication plugin 'caching_sha2_password' cannot be loaded;
【描述】出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password.
【解决】
① 先查看要给哪个用户修改规则,注意 root的host是否是 '%'
use mysql;
select user,host from user;
② 执行规则更新
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
③ 刷新
FLUSH PRIVILEGES;
④ 重置密码
alter user 'root'@'localhost' identified by '你要设置的新密码';