0%

MySQL同步功能由3个线程(master上1个,slave上2个)来实现。执行 DE>START SLAVEDE> 语句后,slave就创建一个I/O线程。I/O线程连接到master上,并请求master发送二进制日志中的语句。master创建一个线程来把日志的内容发送到slave上。这个线程在master上执行 DE>SHOW PROCESSLISTDE> 语句后的结果中的 DE>Binlog DumpDE> 线程便是。slave上的I/O线程读取master的 DE>Binlog DumpDE> 线程发送的语句,并且把它们拷贝到其数据目录下的中继日志(relay logs)中。第三个是SQL线程,salve用它来读取中继日志,然后执行它们来更新数据。

如上所述,每个master/slave上都有3个线程。每个master上有多个线程,它为每个slave连接都创建一个线程,每个slave只有I/O和SQL线程。

show slave master 用于提供有关从属服务器线程的关键参数的信息:

阅读全文 »

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class UserInfo(models.Model):
"""用户表"""
name = models.CharField(verbose_name='用户名', max_length=32)
...

class Meta:
# 此类可以当做父类,被其他model继承。字段自动过度给,继承的model
abstract = True # 【django以后做数据库迁移时, 不再为UserInfo类创建相关的表以及表结构了】


# app01/models.py
class UserInfo(RbacUserInfo): # 继承上面那个userinfo
"""用户表"""
phone = models.CharField(verbose_name='联系方式', max_length=32)
depart = models.ForeignKey(verbose_name='部门', to='Department', on_delete=models.CASCADE)

首先介绍下django的模型有哪些属性:

先看例子:

Django 模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性。以下对此作一总结:

abstract
这个属性是定义当前的模型类是不是一个抽象类。所谓抽象类是不会对应数据库表的。一般我们用它来归纳一些公共属性字段,然后继承它的子类可以继承这些字段。比如下面的代码中Human是一个抽象类,Employee是一个继承了Human的子类,那么在运行syncdb命令时,不会生成Human表,但是会生成一个Employee表,它包含了Human中继承来的字段,以后如果再添加一个Customer模型类,它可以同样继承Human的公共属性:

阅读全文 »

前言

在 web 应用部署到线上后,需要保证应用一直处于运行状态,在遇到程序异常、报错等情况,导致 web 应用终止时,需要保证程序可以立刻重启,继续提供服务。

而Supervisor 就是解决这种问题的工具,可以提供程序崩溃后,重新把程序启动起来等功能。

阅读全文 »

一、转发时需开启如下:

1
2
3
4
5
6
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_ajp
sudo a2enmod proxy_balancer
sudo a2enmod proxy_connect
sudo a2enmod proxy_html

参考链接

阅读全文 »

今天自己在部署业务的时候, 一个同事说他用另一个域名访问到了我这个域名下的网页, 看来我自己的Nginx的配置,感觉没什么问题!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
server {
listen 80;
server_name www.hehe.com;
root /data1/htdocs/kaixuan.hehe.com/;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
location / {
index index.html;
}
}

后来网上查了一下,发现如果当所有server的规则都不匹配时,nginx会采用第一条server配置,所以一般第一条server会使用阻止页面。这样的话,就需要在server上边再加一条server,加一条默认的阻挡。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
server {
listen 80 default;
listen [::]:80 default;
server_name _;

return 403;
}

server {
listen 80;
server_name www.hehe.com;
root /data1/htdocs/kaixuan.hehe.com/;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
location / {
index index.html;
}
}

netstat 中参数选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-a或--all:显示所有连线中的Socket;
-A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址;
-c或--continuous:持续列出网络状态;
-C或--cache:显示路由器配置的快取信息;
-e或--extend:显示网络其他相关信息;
-F或--fib:显示FIB;
-g或--groups:显示多重广播功能群组组员名单;
-h或--help:在线帮助;
-i或--interfaces:显示网络界面信息表单;
-l或--listening:显示监控中的服务器的Socket;
-M或--masquerade:显示伪装的网络连线;
-n或--numeric:直接使用ip地址,而不通过域名服务器;
-N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称;
-o或--timers:显示计时器;
-p或--programs:显示正在使用Socket的程序识别码和程序名称;
-r或--route:显示Routing Table;
-s或--statistice:显示网络工作信息统计表;
-t或--tcp:显示TCP传输协议的连线状况;
-u或--udp:显示UDP传输协议的连线状况;
-v或--verbose:显示指令执行过程;
-V或--version:显示版本信息;
-w或--raw:显示RAW传输协议的连线状况;
-x或--unix:此参数的效果和指定"-A unix"参数相同;
--ip或--inet:此参数的效果和指定"-A inet"参数相同。
阅读全文 »

阅读目录

虚拟机中安装的ubuntu 16.04。

方法一

如果用户具有sudo权限,那么直接可以运行如下命令: 

1
2
3
4
5
sudo su root
#输入当前用户的密码
passwd
#输入密码
#再次输入密码

image

阅读全文 »

  • vi /etc/rc.local
  • 按i键进入编辑模式,然后在最后一行加入需要开机启动的命令 例如:
  • ssserver -c /etc/shadowsocks/config.json -d start –log-file /etc/shadowsocks/ss.log –pid-file /etc/shadowsocks/ss.pid

free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。

image

如果加上 -h 选项,输出的结果会友好很多:

image

1
2
3
4
5
6
7
8
9
10
11
12
13
命令释义
第一行Mem: 系统物理内存的使用情况
第二行Swap: swap交换内存的使用情况

total: 系统中内存的总量,
used: 已用内存总量(used = total-free-buffers-cache)
free: 空闲内存容量(真正尚未被使用的物理内存数)
shared: 共享内存使用的容量
buff/cache: buffers和cache所用总量的总和(buffers为内核缓冲区所用的内存,cache为页缓存和slabs所用的内存容量)
available:为估算值,是在不需要swapping内存的情况下,可用物理内存容量。它是从应用程序的角度看到的可用内存数量。s://blog.csdn.net/m0_37635769/article/details/127528556

total =used + free + buffers + cache
available = free + buffer + cache
阅读全文 »