Django 、爬蟲等項目上線到 Linux 服務器遇到的坑

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章