目录
- 一 MySQL主从配置原理(主从分离,主从同步)
- 三:django实现主从读写分离(主从同步)
一 MySQL主从配置原理(主从分离,主从同步)
mysql主从配置的流程大体如图:
1)master会将变动记录到二进制日志里面;
2)master有一个I/O线程将二进制日志发送到slave;
3)slave有一个I/O线程把master发送的二进制写入到relay日志里面;
4)slave有一个SQL线程,按照relay日志处理slave的数据;
二 操作步骤
2.1我们准备两台装好mysql的服务器(我在此用docker模拟了两台机器)
环境 | mysql版本 | ip地址:端口号 |
---|---|---|
主库(master) | 5.7 | 172.16.209.100:33307 |
从库(slave) | 5.7 | 172.16.209.100:33306 |
用docker拉起两个mysql容器,步骤如下(对docker不熟悉的同学可以查看docker快速入门章节):
# 拉取mysql5.7镜像 docker pull mysql:5.7 #在home目录下创建mysql文件夹,下面创建data和conf.d文件夹 mkdir /home/mysql mkdir /home/mysql/conf.d mkdir /home/mysql/data/ # 为了目录映射 #在home目录下创建mysql文件夹,下面创建data和conf.d文件夹 mkdir /home/mysql2 mkdir /home/mysql2/conf.d mkdir /home/mysql2/data/ # 创建my.cnf配置文件(mysql1配置文件) touch /home/mysql/my.cnf # 创建my.cnf配置文件(mysql2配置文件) touch /home/mysql2/my.cnf
# 切换到home cd /home # 1.切换到mysql路径内 vim /mysql/my.cnf # mysql/my.cnf添加如下内容:(配置主库) [mysqld] # 服务端配置 user=mysql character-set-server=utf8 default_authentication_plugin=mysql_native_password secure_file_priv=/var/lib/mysql expi