MySQL读写分离原理及步骤

本文详细介绍了MySQL的主从复制不同类型,包括基于语句、基于行和混合复制。通过实验环境的搭建,如安装ntp、配置MySQL主从服务器,实现了主从同步。进一步,通过配置amoeba服务器进行读写分离测试,验证了写操作在主服务器,读操作在从服务器的轮询方式,确保了数据一致性。
摘要由CSDN通过智能技术生成

MySQL主从复制的类型

基于语句的复制(默认)

在主服务器上执行的语句,从服务器执行同样的语句

基于行的复制

把改变的内容复制到从服务器

混合类型的复制

一旦发现基于语句无法精确复制时,就会采用基于行的复制

主从复制的工作过程

MySQL读写分离原理

读写分离就是只在主服务器上写,只在从服务器上读
主数据库处理事务性查询,从而数据库处理select查询
数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库

实验环境

amoeba服务器(192.168.45.130)
master服务器(192.168.45.131)
slave1服务器 (192.168.45.132)
slave2服务器 (192.168.45.133)
client客户端

1,在master服务器上安装ntp时间服务器

[root@ameoba ~]# yum install ntp -y   ##安装时间服务器
[root@master1 ~]# vim /etc/ntp.conf 
##在server下添加
server 127.127.13.0      ##本地是时间源
fudge 127.127.13.0 stratum 8   ##设置时间层级为8

[root@master1 ~]# systemctl start ntpd    ##启动时间服务
[root@master1 ~]# systemctl stop firewalld   ##关闭防火墙
[root@master1 ~]# setenforce 0

2,在slave1上安装ntp,ntpdate服务

[root@slave1 ~]# yum install ntp ntpdate -y
[root@slave1 ~]# systemctl start ntpd
[root@slave1 ~]# systemctl stop firewalld
[root@slave1 ~]# setenforce 0
[root@slave1 ~]# /usr/sbin/ntpdate 192.168.13.151    ##同步主服务器时间
29 Nov 16:58:43 ntpdate[4932]: the NTP socket is in use, exiting

3,在slave2上安装ntp,ntpdate服务

[root@slave2 ~]# yum install ntp ntpdate -y
[root@slave2 ~]# systemctl start ntpd
[root@slave2 ~]# systemctl stop firewalld
[root@slave2 ~]# setenforce 0
[root@slave2 ~]# /usr/sbin/ntpdate 192.168.13.151
29 Nov 17:02:08 ntpdate[4850]: the NTP socket is in use, exiting

4,在master,slave1,slave2上分别安装MySQL-5.5.24

[root@master1 ~]# mkdir /abc   ##创建挂载点
[root@master1 ~]# mount.cifs //192.168.100.3/LNMP-C7 /abc/   ##远程挂载
Password for root@//192.168.100.3/LNMP-C7:  
[root@master1 ~]# cd /abc/
[root@master1 abc]# ls
mysql-5.5.24
[root@master1 abc]# tar zxvf mysql-5.5.24.tar.gz -C /opt/   ##解压
[root@master1 opt]# yum install -y \
> gcc gcc-c++ \
> ncurses \
> ncurese-devel \    ##控制终端屏幕显示的库
> bison \                 ##语法分析
> make
> cmake                 ##cmake工具
> libaio-devel         ##系统调用来实现异步IO


[root@slave1 opt]# useradd -s /sbin/nologin mysql   ##添加不可登录的mysql用户
[root@slave1 opt]# cd /opt/mysql-5.5.24/
[root@slave1 mysql-5.5.24]# mkdir /usr/local/mysql   ##创建安装目录
[root@slave1 mysql-5.5.24]# cmake \      ##配置
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \    ##安装路径
> -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock \   ##sock文件路径
> -DDEFAULT_CHARSET=utf8 \      ##字符集
> -DDEFAULT_COLLATION=utf8_general_ci \
> -DWITH_EXTRA_CHARSETS=all \
> -DWITH_MYISAM_STORAGE_ENGINE=1
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值