mysql的复制类型
基于语句的复制
基于行的复制
混合类型的复制
主从复制原理
主服务器 master 记录数据库通过 dump 线程将操作记录到 Binary log
从服务器开启 I/O 线程向主服务器发送同步日志请求
主服务器把二进制日志内容发送给从服务器
从服务器将二进制日志记录的操作同步到relay log (中继日志) (存在从服务器的缓存中)
从服务器中的sql线程将relay log日志记录的操作在从服务器执行后写入从服务器数据库。
主从复制实操
mysql master 192.168.174.12
mysql slave1 192.168.174.13
mysql slave2 192.168.174.14
主从服务器时间同步
master服务器配置
① 安装ntp、修改配置文件
[root@master ~]# yum install ntp -y
[root@master ~]# vim /etc/ntp.conf
[root@master ~]# yum -y install ntpdate ntp #安装ntp软件
[root@master ~]# ntpdate ntp.aliyun.com #时间同步
[root@master ~]# vi /etc/ntp.conf #编辑配置文件
fudge 127.127.1.0 stratum 10
#设置本机的时间层级为10级,0级表示时间层级为0级,是向其他服务器提供时间同步源的意思,不要设置为0级
server 127.127.1.0 #设置本机为时间同步源
② 开启NTP服务、关闭防火墙和增强性安全功能
[root@master ~]# systemctl start ntpd
[root@master ~]# systemctl stop firewalld.service
[root@master ~]# setenforce 0
##两台SLAVE服务器配置
① 安装ntp、ntpdate服务
[root@localhost ~]# yum install ntp ntpdate -y
② 开启ntp服务,关闭防火墙、增强性安全功能
[root@localhost ~]# systemctl start ntpd
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
③ 时间同步master服务器
[root@localhost ~]# ntpdate 192.168.226.129
三台服务器安装好mysql服务
master服务器
修改/etc/my.cnf
重启服务
在mysql中配置规则
单引号中写入密码,我是默认没密码的
刷新权限表
查看master数据库状态
倆台slave配置相同
进入配置/etc/my.cnf
注意三台机器的server-id不要一样
保存退出
进入mysql配置
倆台从服务器配置相同
测试
在master服务器创建一个库,从服务也会有此库
可以看见从服务上同步到了master在主从连接成功后,新的操作信息