本章知识点
1、Centos下python3环境的部署
2、Python uwsgi
3、Python uwsgi+nginx部署
4、mysql主从备份介绍
5、Linux下的mysql安装
6、基于mysql的Django读写分离

知识点讲解
1、Centos下python3环境的部署
Yum源,就是我们的安装源。
检测yum是否完好
Yum list
当遇到以下问题
Yum 进程没有关闭
错误:1
Yum 源没有配置

配置yum源:
https://www.linuxidc.com/Linux/2017-08/146364.htm
错误:2
Pid 进程id

Kill -9 pid 杀死进程

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

Unix系统默认安装了python
Centos 6 安装 python2.6版本
Centos 7 安装 python2.7版本

我们需要的版本是python 3.6.2,在centos上进行python2和3并存
下载python 3.6.2的包
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz

补充:
协议:网络上数据传输的约定规则
Tcp 面向连接的协议,有校验的数据包
Udp 无连接
可容忍丢包率
http 常规的http
https 加密的http
ftp 文件传输
Ssh 远程空开
Sftp 基于ssh的文件传输
Smtp 协议

解压安装包
tar -xvJf Python-3.6.2.tar.xz 
编译安装
./configure prefix=/usr/local/python3

Make && make install

配置软连接(环境变量)
软连接 --> 快捷方式
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

测试:
以后我们运行python3的脚本需要编程 python3 *.py
安装python的扩展包
yum install python-devel

安装python 开发包
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项目,本身很难和Apache或者Nginx进行结合,为了让python web项目更加方便的被部署,开发出了uwsgi。
安装:
Pip安装uwsgi

创建软连接
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

使用:
我们迁移我们的项目Qshop
复制我们的项目到虚拟机

cp -r /root/Desktop/Qshop/ /opt/Qshop
我们需要清除pycharm的配置文件,初始的导入文件
测试项目
python3 manage.py runserver 0.0.0.0:8000

注意:
Systemctl stop firewalld 关闭防火墙

用uwsgi启动django
uwsgi --http 10.10.16.229:8000 --file Qshop/wsgi.py --static-map=/static=static
uwsgi 模块名称
–http 协议
10.10.16.229:8000 主机端口
–file uwsgi要使用的解析文件,一般django自己创建
–static 静态目录

上面我们采用的是命令的方式使用uwsgi启动django,但是,不够完美。我们可以构造配置文件进行操作。
配置内容如下
[uwsgi]

chdir=/opt/OurBlog #项目目录

module=OurBlog.wsgi:application #指定项目的application

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

workers=5 #进程个数

pidfile=/opt/script/uwsgi.pid

http= 192.168.2.69:8000 #指定IP端口

static-map=/static=/opt/OurBlog/static #指定静态文件

uid=root #用户

gid=root #组

master=true #启用主进程

vacuum=true #自动移除unix Socket和pid文件当服务停止的时候

enable-threads=true #启用线程

thunder-lock=true #序列化接受的内容,如果可能的话

harakiri=30 #设置自中断时间

post-buffering=4096 #设置缓冲

daemonize=/opt/script/uwsgi.log #设置日志目录

1、创建uwsgi文件的配置文件目录和文件

2、编写内容
启动uwsgi
授权
杀死进程重启
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

创建软连接

Nginx通讯uwsgi
修改Nginx的配置文件
备份配置文件
开始配置

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; 服务的名称

charset utf-8; 编码格式

access_log  logs/host.access.log  main; 访问日志

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;  访问内容的类型

error_log /var/log/nginx/error.log error; 错误日志,默认没有,需要手动创建

location / {
             include uwsgi_params; 加载uwsgi_params
             uwsgi_connect_timeout 30; 连接的超时时间 不要加冒号不要加冒号不要加冒号 
             uwsgi_pass unix:/opt/script/uwsgi.sock; uwsgi.sock通讯的文件地址
        }

location = /static/{
            alias /opt/Qshop/static; 静态文件的目录
            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
杀死当前状态下的所有Nginx服务
Pkill -9 nginx
从新启动
访问网站:

商城数据库读写分离:
知识点:
1、mysql主从备份介绍
2、Linux下的mysql安装
3、基于mysql的Django读写分离

知识点讲解
1、mysql主从备份介绍
备份:安全。
目的:Django网站数据库读写分离设置。在我们工作当中,发现有的数据表经常查询,有的表 经常写入。同时交给一个数据库,效率不高。

2、Linux下的mysql安装
2台Centos7 虚拟机
Server 主Ip 10.10.16.229
Client 从Ip 10.10.16.141
关闭防火墙

测试ping
3、基于mysql的Django读写分离
在Linux安装mariadb数据库
Mysql本身是开源的,大家用的很开心,但是有一家数据库大户,oracle公司看上了mysql,觉得收购,并且答应mysql我们依然开源。果然,后来收费了。Mysql的团队,不忿,然后从新写了mysql的妹妹:mariadb,mariadb和mysql相识度到99%。并且免费。所以,centos7系统,我们使用mariadb。
Centos7 官方yum源包含mariadb的完整安装,所以我们需要的只是一条安装命令。
yum -y install mariadb mariadb-server 安装mariadb

Systemctl start mariadb 启动mariadb
给root添加密码
安装telnet,这个工具在mysql主从备份会用到
yum install telnet.x86_64 telnet-server.x86_64

为了后面的实验,我们在主mysql创建一个小小的数据库

主从配置
查看主数据库

修改数据库配置
/etc/my.cnf
备份配置文件

访问配置文件
配置主服务器的配置文件
/etc/my.cnf

重启mariadb
systemctl restart mariadb

进入数据库进行授权
GRANT REPLICATION SLAVE ON . TO “root”@“10.10.16.%” IDENTIFIED BY’admin’
GRANT 授权
REPLICATION 权限
SLAVE 备份
ON 在。。之上
. 所有权限
TO 给,去
“root” 用户
“10.10.16.%”16网段所有ip
IDENTIFIED BY 确认密码
Admin 备份的密码
在工作当中,我们备份的时候,可以允许读操作,不允许写操作,我们需要在备份的时候对数据库进行加锁。
加锁
FLUSH TABLES WITH READ LOCK;
然后备份数据库
导入和导出都是基于数据库外的,操作之前请退出数据库

数据库数据导出
mysqldump -uroot -p123 --all-databases > /root/db.sql

解锁
数据库数据导入

本章总结
mysql主从备份介绍
Linux下的mysql安装
基于mysql的Django读写分离
————————————————
版权声明:本文为CSDN博主「考古学家lx」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43582101/article/details/86625140

018:Django商城部署和数据库读写分离相关推荐

  1. Python开发之:Django基于Docker实现Mysql数据库读写分离、集群、主从同步详解 | 原力计划...

    作者 | Pythonicc 责编 | 王晓曼 出品 | CSDN博客 简介 1.什么是数据库读写分离 读写分离,基本的原理是让主数据库处理事务性增.改.删操作(INSERT.UPDATE.DELET ...

  2. ceph集群和数据库到底是储存数据_Python开发之:Django基于Docker实现Mysql数据库读写分离、集群、主从同步详解 | 原力计划...

    作者 | Pythonicc责编 | 王晓曼出品 | CSDN博客简介1.什么是数据库读写分离读写分离,基本的原理是让主数据库处理事务性增.改.删操作(INSERT.UPDATE.DELETE),而从 ...

  3. 数据库读写分离数据延迟解决方案

    一.数据库系统架构发展 1.主备架构 业务发展的前期,数据访问量小,这时我们可以直接采用单库的架构. 不过我们一般不使用的上面的架构,因为存在单点的问题.若数据库出现故障,这段期间业务将会不可用.我们 ...

  4. thinkphp mysql读写分离_ThinkPHP5分布式数据库读写分离

    项目想要数据库读写分离,需要配置两个方面,一个是数据库配置,另一个是ThinkPHP5配置,前面写过一篇关于MySQL读写分离配置的文章MySQL主从同步及读写分离,这篇介绍ThinkPHP5里怎么运 ...

  5. 数据库读写分离,主从同步实现方法

    前言 众所周知,随着用户量的增多,数据库操作往往会成为一个系统的瓶颈所在,而且一般的系统"读"的压力远远大于"写",因此我们可以通过实现数据库的读写分离来提高系 ...

  6. 跟我学Springboot开发后端管理系统5:数据库读写分离

    在Matrix-web后台管理系统中,使用到了数据库的读写分离技术.采用的开源的Sharding-JDBC作为数据库读写分离的框架.Matrix-Web后台数据库这一块采用的技术栈如下: 使用Myba ...

  7. 解决数据库读写分离(转)

    如何配置mysql数据库的主从? 单机配置mysql主从:http://my.oschina.net/god/blog/496 常见的解决数据库读写分离有两种方案 1.应用层 http://neore ...

  8. 学会数据库读写分离、分表分库

    https://www.cnblogs.com/joylee/p/7513038.html 系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理本身优 ...

  9. .net core发布 正在发现数据上下文_使用EF Core实现数据库读写分离

    以下文章来源于朝夕Net社区 ,作者Eleven 朝夕Net社区 朝气.丰富.活跃的.Net社区,朝夕教育携百万粉丝共同打造!有技术,有感悟,有新闻,有照片,有故事,还有梦想! [精选转载]| 作者/ ...

最新文章

  1. R语言sign函数判断数值为正数或者负数实战
  2. 【Java报错】多数据源mapper异常more than one `primary` bean found among candidates: [sqlSessionFactory] 问题分析解决
  3. 解决:org.apache.rocketmq.client.exception.MQClientException: No route info of this topic, TopicTest
  4. iOS里面MVC模式详解
  5. 佳能102种相片风格_一位妈妈用蔬菜水果等,为女儿拍了一组相片,没想到在INS火了...
  6. 支付宝有50万存款,但欠30万房贷。是还房贷好,还是买基金好?
  7. 重装也无法修复此计算机,遇到Win7系统崩溃无法修复的情况怎么办
  8. linux内核mtd驱动程序与sd卡驱动程序,Linux内核MTD驱动程序与SD卡驱动程序(2)
  9. 【Reformer】图解Reformer:一种高效的Transformer
  10. Git版本管理工具Tower for Mac
  11. SQL:MongoDB简述
  12. 简述TCP/IP参考模型
  13. 软件安全性验收测试 软件测试常见报告类型
  14. Jetson 系列——nvidia jetson nano设置声卡
  15. ae合成设置快捷键_AE常用的快捷键(UI动效方向)
  16. 数据通信与计算机网络复习笔记
  17. 计算机毕业设计(附源码)python银行服务评价系统
  18. 【软件测试教程】Jmeter接口测试+压力测试
  19. 再聊面试,这次关于钱,关于培训,关于内卷
  20. 南京烽火星空——企业移动信息化的“大白”

热门文章

  1. cmake构建器最新Windows/MACOS/LINUX版本分享
  2. 浅谈C++函数的参数
  3. 「Python」Terminal / cmd中的Python命令解释器中的pip操作
  4. Phoenix二级索引(Secondary Indexing)的使用(转:https://www.cnblogs.com/MOBIN/p/5467284.html)
  5. 第十二天:规划成本管理,成本类型, 资产折旧;和 估算成本,估算成本知识点提示
  6. 04springMVC结构,mvc模式,spring-mvc流程,spring-mvc的第一个例子,三种handlerMapping,几种控制器,springmvc基于注解的开发,文件上传,拦截器,s
  7. android模拟器EditText 不能用物理键盘输入,也不能用电脑键盘输入
  8. 打开高效文本编辑之门_Linux sed之多行命令与循环命令
  9. python求txt文件内平均值_使用Python计算.txt文件中的数字的平均值
  10. Focal Loss论文阅读笔记