日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

018:Django商城部署和数据库读写分离

發(fā)布時(shí)間:2024/9/20 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 018:Django商城部署和数据库读写分离 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本章知識(shí)點(diǎn)
1、Centos下python3環(huán)境的部署
2、Python uwsgi
3、Python uwsgi+nginx部署
4、mysql主從備份介紹
5、Linux下的mysql安裝
6、基于mysql的Django讀寫分離

知識(shí)點(diǎn)講解
1、Centos下python3環(huán)境的部署
Yum源,就是我們的安裝源。
檢測(cè)yum是否完好
Yum list
當(dāng)遇到以下問(wèn)題
Yum 進(jìn)程沒(méi)有關(guān)閉
錯(cuò)誤:1
Yum 源沒(méi)有配置

配置yum源:
https://www.linuxidc.com/Linux/2017-08/146364.htm
錯(cuò)誤:2
Pid 進(jìn)程id

Kill -9 pid 殺死進(jìn)程

安裝python需要的依賴包
Yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make?

Unix系統(tǒng)默認(rèn)安裝了python
Centos 6 安裝 python2.6版本
Centos 7 安裝 python2.7版本

我們需要的版本是python 3.6.2,在centos上進(jìn)行python2和3并存
下載python 3.6.2的包
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz

補(bǔ)充:
協(xié)議:網(wǎng)絡(luò)上數(shù)據(jù)傳輸?shù)募s定規(guī)則
Tcp 面向連接的協(xié)議,有校驗(yàn)的數(shù)據(jù)包
Udp 無(wú)連接
可容忍丟包率
http 常規(guī)的http
https 加密的http
ftp 文件傳輸
Ssh 遠(yuǎn)程空開(kāi)
Sftp 基于ssh的文件傳輸
Smtp 協(xié)議

解壓安裝包
tar -xvJf Python-3.6.2.tar.xz?
編譯安裝
./configure prefix=/usr/local/python3

Make && make install

配置軟連接(環(huán)境變量)
軟連接 --> 快捷方式
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

測(cè)試:
以后我們運(yùn)行python3的腳本需要編程 python3 *.py
安裝python的擴(kuò)展包
yum install python-devel

安裝python 開(kāi)發(fā)包
Pymysql
Pillow
Django2.1.5
django-ckeditor
pip3 install pymysql && pip3 install pillow && pip3 install django2.1.5 &&pip3 install django-ckeditor

2、Python uwsgi
Python 的web項(xiàng)目,本身很難和Apache或者Nginx進(jìn)行結(jié)合,為了讓python web項(xiàng)目更加方便的被部署,開(kāi)發(fā)出了uwsgi。
安裝:
Pip安裝uwsgi

創(chuàng)建軟連接
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

使用:
我們遷移我們的項(xiàng)目Qshop
復(fù)制我們的項(xiàng)目到虛擬機(jī)

cp -r /root/Desktop/Qshop/ /opt/Qshop
我們需要清除pycharm的配置文件,初始的導(dǎo)入文件
測(cè)試項(xiàng)目
python3 manage.py runserver 0.0.0.0:8000

注意:
Systemctl stop firewalld 關(guān)閉防火墻

用uwsgi啟動(dòng)django
uwsgi --http 10.10.16.229:8000 --file Qshop/wsgi.py --static-map=/static=static
uwsgi 模塊名稱
–http 協(xié)議
10.10.16.229:8000 主機(jī)端口
–file uwsgi要使用的解析文件,一般django自己創(chuàng)建
–static 靜態(tài)目錄

上面我們采用的是命令的方式使用uwsgi啟動(dòng)django,但是,不夠完美。我們可以構(gòu)造配置文件進(jìn)行操作。
配置內(nèi)容如下
[uwsgi]

chdir=/opt/OurBlog #項(xiàng)目目錄

module=OurBlog.wsgi:application #指定項(xiàng)目的application

socket=/opt/script/uwsgi.sock #指定sock的文件路徑

workers=5 #進(jìn)程個(gè)數(shù)

pidfile=/opt/script/uwsgi.pid

http= 192.168.2.69:8000 #指定IP端口

static-map=/static=/opt/OurBlog/static #指定靜態(tài)文件

uid=root #用戶

gid=root #組

master=true #啟用主進(jìn)程

vacuum=true #自動(dòng)移除unix Socket和pid文件當(dāng)服務(wù)停止的時(shí)候

enable-threads=true #啟用線程

thunder-lock=true #序列化接受的內(nèi)容,如果可能的話

harakiri=30 #設(shè)置自中斷時(shí)間

post-buffering=4096 #設(shè)置緩沖

daemonize=/opt/script/uwsgi.log #設(shè)置日志目錄

1、創(chuàng)建uwsgi文件的配置文件目錄和文件

2、編寫內(nèi)容
啟動(dòng)uwsgi
授權(quán)
殺死進(jìn)程重啟
2、Python uwsgi+nginx部署
wget -c https://nginx.org/download/nginx-1.12.2.tar.gz

解壓 tar -zxvf nginx-1.12.2.tar.gz
編譯安裝
./configure
make && make install


Nginx
/usr/local/nginx

創(chuàng)建軟連接

Nginx通訊uwsgi
修改Nginx的配置文件
備份配置文件
開(kāi)始配置

http {
? ? include ? ? ? mime.types;
? ? default_type ?application/octet-stream;

? ? log_format ?main ?'$remote_addr - $remote_user [$time_local] "$request" '
? ? ? ? ? ? ? ? ? ? ? '$status $body_bytes_sent "$http_referer" '
? ? ? ? ? ? ? ? ? ? ? '"$http_user_agent" "$http_x_forwarded_for"'; 日志的格式

? ? #access_log ?logs/access.log ?main;

? ? sendfile ? ? ? ?on;
? ? #tcp_nopush ? ? on;

? ? #keepalive_timeout ?0;
? ? keepalive_timeout ?65;

? ? #gzip ?on;
server {
? ? ? ? listen ? ? ? 80;
? ? ? ? server_name ?Qshop; 服務(wù)的名稱

? ? ? ? charset utf-8; 編碼格式

? ? ? ? access_log ?logs/host.access.log ?main; 訪問(wèn)日志

? ? ? ? gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json text/json image/jpeg image/gif image/png application/octet-stream; ?訪問(wèn)內(nèi)容的類型

? ? ? ? error_log /var/log/nginx/error.log error; 錯(cuò)誤日志,默認(rèn)沒(méi)有,需要手動(dòng)創(chuàng)建

? ? ? ? location / {
? ? ? ? ? ? ?include uwsgi_params; 加載uwsgi_params
? ? ? ? ? ? ?uwsgi_connect_timeout 30; 連接的超時(shí)時(shí)間 不要加冒號(hào)不要加冒號(hào)不要加冒號(hào)?
? ? ? ? ? ? ?uwsgi_pass unix:/opt/script/uwsgi.sock; uwsgi.sock通訊的文件地址
? ? ? ? }

? ? ? ? location = /static/{
? ? ? ? ? ? alias /opt/Qshop/static; 靜態(tài)文件的目錄
? ? ? ? ? ? index index.html index.htm;
? ? ? ? }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
殺死當(dāng)前狀態(tài)下的所有Nginx服務(wù)
Pkill -9 nginx
從新啟動(dòng)
訪問(wèn)網(wǎng)站:


商城數(shù)據(jù)庫(kù)讀寫分離:
知識(shí)點(diǎn):
1、mysql主從備份介紹
2、Linux下的mysql安裝
3、基于mysql的Django讀寫分離

知識(shí)點(diǎn)講解
1、mysql主從備份介紹
備份:安全。
目的:Django網(wǎng)站數(shù)據(jù)庫(kù)讀寫分離設(shè)置。在我們工作當(dāng)中,發(fā)現(xiàn)有的數(shù)據(jù)表經(jīng)常查詢,有的表 經(jīng)常寫入。同時(shí)交給一個(gè)數(shù)據(jù)庫(kù),效率不高。

2、Linux下的mysql安裝
2臺(tái)Centos7 虛擬機(jī)
Server 主Ip 10.10.16.229
Client 從Ip 10.10.16.141
關(guān)閉防火墻

測(cè)試ping
3、基于mysql的Django讀寫分離
在Linux安裝mariadb數(shù)據(jù)庫(kù)
Mysql本身是開(kāi)源的,大家用的很開(kāi)心,但是有一家數(shù)據(jù)庫(kù)大戶,oracle公司看上了mysql,覺(jué)得收購(gòu),并且答應(yīng)mysql我們依然開(kāi)源。果然,后來(lái)收費(fèi)了。Mysql的團(tuán)隊(duì),不忿,然后從新寫了mysql的妹妹:mariadb,mariadb和mysql相識(shí)度到99%。并且免費(fèi)。所以,centos7系統(tǒng),我們使用mariadb。
Centos7 官方y(tǒng)um源包含mariadb的完整安裝,所以我們需要的只是一條安裝命令。
yum -y install mariadb mariadb-server 安裝mariadb


Systemctl start mariadb 啟動(dòng)mariadb
給root添加密碼
安裝telnet,這個(gè)工具在mysql主從備份會(huì)用到
yum install telnet.x86_64 telnet-server.x86_64


為了后面的實(shí)驗(yàn),我們?cè)谥鱩ysql創(chuàng)建一個(gè)小小的數(shù)據(jù)庫(kù)

主從配置
查看主數(shù)據(jù)庫(kù)

修改數(shù)據(jù)庫(kù)配置
/etc/my.cnf
備份配置文件

訪問(wèn)配置文件
配置主服務(wù)器的配置文件
/etc/my.cnf

重啟mariadb
systemctl restart mariadb

進(jìn)入數(shù)據(jù)庫(kù)進(jìn)行授權(quán)
GRANT REPLICATION SLAVE ON . TO “root”@“10.10.16.%” IDENTIFIED BY’admin’
GRANT 授權(quán)
REPLICATION 權(quán)限
SLAVE 備份
ON 在。。之上
. 所有權(quán)限
TO 給,去
“root” 用戶
“10.10.16.%”16網(wǎng)段所有ip
IDENTIFIED BY 確認(rèn)密碼
Admin 備份的密碼
在工作當(dāng)中,我們備份的時(shí)候,可以允許讀操作,不允許寫操作,我們需要在備份的時(shí)候?qū)?shù)據(jù)庫(kù)進(jìn)行加鎖。
加鎖
FLUSH TABLES WITH READ LOCK;
然后備份數(shù)據(jù)庫(kù)
導(dǎo)入和導(dǎo)出都是基于數(shù)據(jù)庫(kù)外的,操作之前請(qǐng)退出數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)出
mysqldump -uroot -p123 --all-databases > /root/db.sql

解鎖
數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)入


本章總結(jié)
mysql主從備份介紹
Linux下的mysql安裝
基于mysql的Django讀寫分離
————————————————
版權(quán)聲明:本文為CSDN博主「考古學(xué)家lx」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_43582101/article/details/86625140

總結(jié)

以上是生活随笔為你收集整理的018:Django商城部署和数据库读写分离的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。