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