Django 、爬虫等项目上线到 Linux 服务器遇到的坑

本文聚焦Django上线及相关数据库连接问题。介绍了Django与MySQL版本兼容问题,如Django 2.1需MySQL 5.6以上;阐述Nginx在Python虚拟环境中的配置及日志查看方法;还针对Navicat连接服务器MySQL数据库的权限和加密规则问题给出解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、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 '你要设置的新密码';

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值