Django學習筆記《一》圖書管理系統專案掛載到阿里雲

寇浩哲發表於2018-11-16

專案示例

pycharm編譯好的專案

阿里雲伺服器域名

成果展示
如果不能訪問,可能埠已經關閉。

遇到的問題一大堆,大量使用網上文章,如有問題,進行留言聯絡。

簡單做一個記錄供自己查閱和檢索,以備下次伺服器搭建,這樣可以減少時間成本。
僅供個人記錄使用!本文不是教程
僅供個人記錄使用!本文不是教程
僅供個人記錄使用!本文不是教程

選擇的是cento7的雲系統

Linux yun 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep 
12 22:26:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

首先預設沒有python3,用官網的安裝,安裝好了有沒有pip3沒辦法安裝django和pymysql。親測成功!

解決方案:https://www.aliyun.com/jiaocheng/527141.html

1.安裝依賴包bzip2

安裝anaconda前,要先安裝個解壓縮工具bzip2,開啟阿里雲ECS例項的遠端連線,輸入下面命令,即可完成安裝:

yum install bzip2

2.安裝anaconda3

(1)下載anaconda3安裝包,輸入命令:

wget https://repo.continuum.io/archive/Anaconda3-4.3.1-Linux-x86_64.sh

如果速度慢的話,可以在本地下載後,上傳到伺服器root目錄裡。


阿里雲安裝python3的極簡方法_Python

(2)安裝anaconda3,根據以下螢幕提示依次完成。

輸入命令:sh Anaconda3-4.3.1-Linux-x86_64.sh


阿里雲安裝python3的極簡方法_Python

阿里雲安裝python3的極簡方法_Python

慢敲回車ENTER鍵,47下左右,螢幕提示是否接受許可協議?輸入yes。

輸入指定安裝路徑:/usr/local/anaconda3


阿里雲安裝python3的極簡方法_Python

螢幕提示是否將安裝路徑寫入PATH環境變數,輸入yes,回車,安裝完成。


阿里雲安裝python3的極簡方法_Python

重新登入遠端連線,輸入python,預設即是python3.6版本啦,是不是極其簡單呢?


阿里雲安裝python3的極簡方法_Python
TIPS:1.安裝python的依賴包。參考連結

安裝python或者anaconda前,可能需要先安裝一些依賴包(例如解壓工具bzip2),否則會報錯。

已知的一些常用依賴包如下,可根據需要選擇安裝:

在 CentOS/RHEL/Fedora 下:

sudo yum install readline readline-devel readline-static
sudo yum install openssl openssl-devel openssl-static
sudo yum install sqlite-devel
sudo yum install bzip2-devel bzip2-libs

在 Ubuntu下:

sudo apt-get update
sudo apt-get install make build-essential libssl-dev zlib1g-dev
sudo apt-get install libbz2-dev libreadline-dev libsqlite3-dev wget curl
sudo apt-get install llvm libncurses5-dev libncursesw5-dev

2.為什麼很多應用都安裝在/usr/local目錄下?參考連結

答案是:Automake工具定義了下面的一組變數:

Directory variable  Default value
prefix  /usr/local
exec_prefix   ${prefix}
bindir  ${exec_prefix}/bin
libdir  ${exec_prefix}/lib

includedir    ${prefix}/include
datarootdir   ${prefix}/share
datadir ${datarootdir}
mandir  ${datarootdir}/man
infodir ${datarootdir}/info
docdir  ${datarootdir}/doc/${PACKAGE}

而GUN下面絕大部分應用的編譯系統都是用automake。

於是乎,你看到的很多很多應用都安裝在了/usr/local/目錄下。


解決了python3的問題以後mysql預設也沒安裝!

到官網下載好rpm安裝包,附贈我的連結,下載名字的包
RPM Package, MySQL Server
安裝教程:https://www.cnblogs.com/shuangzikun/p/taotao_linux_mysql_install.html

較有參考價值的文章:https://blog.csdn.net/a774630093/article/details/79270080

從第四步開始

4、安裝之前解除安裝以前的版本
[root@localhost soft]# rpm -qa | grep mysql
pcp-pmda-mysql-3.10.6-2.el7.x86_64
[root@localhost soft]# rpm -e --nodeps pcp-pmda-mysql-3.10.6-2.el7.x86_64
[root@localhost soft]# rpm -qa | grep mysql
5、開始安裝rpm檔案 ,順序是先安裝依賴檔案再安裝client再安裝server
安裝過程出現如下錯誤
就需要刪除mariadb-libs
執行刪除[root@localhost soft]# yum remove mariadb-libs

刪除完畢。
安裝第一個依賴
mysql-community-common-5.7.21-1.el7.x86_64.rpm
安裝第二個依賴
mysql-community-libs-5.7.21-1.el7.x86_64.rpm
安裝客戶端
mysql-community-client-5.7.21-1.el7.x86_64.rpm
安裝服務端
mysql-community-server-5.7.21-1.el7.x86_64.rpm
6、安裝完畢開始檢視是否啟動
[root@localhost soft]# systemctl status mysqld.service
沒有啟動。
開始啟動服務
[root@localhost soft]# systemctl start mysqld
[root@localhost soft]# systemctl status mysqld
看到顏色很深的地方表示啟動ok了。
7、查初始root密碼
[root@localhost soft]# cat /var/log/mysqld.log | grep 'password'
冒號後面的那一坨就是密碼。
8、進入mysql,開始重新設定密碼
如果直接輸入mysql不行,重新連線xshell試試,我一開始也一直報錯,就是進入不了mysql,很尷尬。
就像這樣。我斷開連線之後,後面不知道咋的又好了。
[root@localhost ~]# netstat -tulpn
檢視mysql執行狀態,如果有33006埠表示服務正在執行
--------進入mysql mysql -uroot -p
輸入上面的初始密碼。
現在還不能做別的操作,先修改初始密碼
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '117949255';
如果遇到這種問題
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
執行
mysql> set global validate_password_policy=0;
mysql> global validate_password_length=1;
再次執行
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '117949255';
ok,密碼就改成了後面的了。
可以退出重新登入看看。
mysql> quit
8、設定遠端連線
[root@localhost ~]# systemctl restart mysqld 重新啟動服務
[root@localhost ~]# GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '117949' WITH GRANT OPTION;
設定遠端連線,後面的數字是密碼,可以改變。
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
遇到同樣的問題同樣的解決方法。
設定ok之後,可以連線試試
ok啦。
心得:剛開始安裝的時候走了彎路,拿起哥教程就開始搞,高了很久一直報錯,後來才發現資料庫版本不對,解壓之後也沒有安裝mysql,去花費了大量時間去配置/etc/my.cnf ,到頭來還是沒有鳥用,哎,開頭都錯了,怎麼搞都是gg。

安裝的環境基本搞定了!再就是使用navicat連線阿里雲mysql

這裡需要配置的比較多,很容易出錯

首先開放埠,新增使用者,新增安全組,如果有防火牆也要關閉

https://blog.csdn.net/antony9118/article/details/77835715

首先建立安全組,然後再安全組中新增規則,如下所示,詳情可以參考官方文件
https://helpcdn.aliyun.com/document_detail/25471.html?spm=5176.doc25468.2.4.RfJyPU

這裡寫圖片描述

新增規則之後,再用navicat連,報另一條錯誤

1045 access denied for user'root'@'localhost' using password yes
 
  • 1

猜想是因為我本地使用root使用者登入navicat,而root使用者並沒有開放外部的訪問許可權,而是隻能localhost訪問

下一步登陸mysql資料庫,使用命令

這裡寫圖片描述

果然root使用者的訪問許可權是localhost,並不能從外部進行訪問,需要手動賦權

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '******' WITH GRANT OPTION;
 
  • 1

好了,這下又報錯

 Your password does not satisfy the current policy requirements
 
  • 1

也就是密碼強度不符合,我也是醉了,使用下面的命令可以檢視設定的密碼強度校驗規則

SHOW VARIABLES LIKE 'validate_password%';
 
  • 1

這裡寫圖片描述

果然是有很麻煩的校驗,網上有很多去除這個校驗的方法,不過都需要修改配置檔案然後重啟資料庫,個人覺得有點麻煩,還有一種臨時辦法可以去除密碼強度校驗(不過下次登入又得用一遍,好處是不需要重啟)

set global validate_password_policy=0;
 
  • 1

好了,再輸入上面的對root使用者賦權的命令,大功告成

這裡寫圖片描述

OK,到這裡,伺服器的3306埠也對外開放了,root使用者也可以從外部進行訪問了,navicat連線成功

大致到這裡解決了很多問題,當然有的問題,也要百度。下面說一下setting.py的配置

資料庫的配置

DATABASES = { 
    'default': {                                                                                              
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'book_manager',這個是你資料庫的名字,連線上資料庫後,你要先建立
        'USER': 'root',
        'PASSWORD': 'xxxx',這個密碼是資料庫root使用者的密碼
        'HOST': '39.107.87.114',這個host是你公網的host
        'PORT': '3306'這個埠是資料庫預設埠,需要在安全組裡面開啟
    }   
}

連線配置

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = ['*']這是允許所有使用者都可以訪問!因為是自己學習使用,所以也沒有那麼多嚴格的限制

怎麼執行專案

python manage.py runserver 0.0.0.0:8000

其他問題

MySQL 5.7 Access denied for user ‘root’@‘localhost’ (using password YES)

這個問題不要按照網上的操作進行設定,首先還是檢查自己密碼的問題

# service mysqld restart 報錯 Redirecting to /bin/systemctl restart mysqld.service

解決辦法

使用如下命令操作mysql:
systemctl restart mysqld.service
systemctl start mysqld.service
systemctl stop mysqld.service

ModuleNotFoundError: No module named '_ctypes’報錯

這個操作要進入root使用者!進行安裝
可參考網上教程:https://blog.csdn.net/qq_36416904/article/details/79316972

http://blog.51cto.com/maoxiaoxiong/2172785

相關文章