MySQL ---- 主从复制

MySQL ---- 主从复制(主从同步)

一:主从复制的作用

​ 在企业网站中,如果后端只要一台 Mysql 服务器时,就会造成故障。比如单点故障,无法处理大量的并发数据请求和造成数据丢失等一系列问题。

1、改造办法
  • 增加MySQL 数据库服务器,对数据进行备份,形成主备

  • 确保主备mysql 数据库服务器数据是一样的

  • 主服务器宕机了,备份服务器继续工作,数据有保障

  • Mysql 主从复制与读写分离是密切相关的

2、更高级解决方案

​ 通过主从复制的方式同步数据,再通过读写分离来提升数据库的并发负载能力 。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MAFzgkc1-1578837300432)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1578639463819.png)]

二、Mysql 主从复制的类型

  • 基于语句的复制(默认)

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

  • 基于行的复制

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

  • 混合类型的复制

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

三:实验过程

1、实验环境

2台centos7虚拟机,搭建好mysql服务 。一台主服务器 (master),一台从服务器 (slave)

实验结果验证:在主服务器上执行的命令,从服务器上也会出现。

2、建立时间同步环境
  • 在主服务器上安装配置NTP时间同步服务器

(使用yum 安装ntp服务 ,修改ntp.conf ,设置主服务器为时间同步源)

  • 在从服务器上进行时间同步

(使用yum 安装ntpdate 并进行时间同步)

3、主服务器上配置 (1)

  • 修改主机名 为master
[root@localhost ~]# hostnamectl set-hostname master
[root@localhost ~]#su
[root@master ~]#[root@master ~]# systemctl stop firewalld.service 
[root@master ~]# setenforce 0             ‘关闭防火墙’
  • 安装时间服务器:
[root@master ~]# yum install ntp -y
  • 修改配置文件
[root@master ~]# vim /etc/ntp.conf             ‘添加两行命令’

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-exRNpUwM-1578837300434)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1578643725051.png)]

[root@master ~]# systemctl start ntpd         ‘开启ntpd’

4、从服务器上配置 (1)

  • 修改主机名
[root@localhost ~]# hostnamectl set-hostname slave
[root@localhost ~]#su
[root@master ~]#[root@master ~]# systemctl stop firewalld.service 
[root@master ~]# setenforce 0             ‘关闭防火墙’
  • 安装时间服务器
[root@slave ~]# yum install ntp ntpdate -y
  • 进行时间同步
[root@slave ~]# systemctl start ntpd        ‘开启ntpd服务’
[root@slave ~]# /usr/sbin/ntpdate 192.168.34.172    ‘同步主服务器的IP地址’

5、主服务器配置(2)

  • 修改配置文件
[root@master ~]# vim /etc/my.cnf
‘插入三行命令’
server-id  = 1             ‘指定id号,服务器的唯一标识’
log-bin=master-bin           ‘主服务器日志文件’
log-slave-updates=true       ‘从服务器更新二进制日志’
  • 重启服务
[root@master system]# systemctl restart mysqld.service
  • 进入数据库
[root@master system]# mysql -uroot -p
mysql> GRANT REPLICATION SLAVE ON *.* TO 'myslave'@'192.168.34.%' IDENTIFIED BY '123';       ‘给从服务器授权访问主服务器’  
mysql> flush privileges;       ‘刷新’
mysql> show master status;      ‘查看主服务器的日志文件’

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-feTTUroB-1578837300434)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1578836402879.png)]

6、从服务器配置(2)

  • 修改配置文件
[root@slave ~]# vim /etc/my.cnf
‘添加3行命令’
server-id = 2        ‘指定id号,服务器的唯一标识’
relay-log=relay-log-bin      ‘从服务器上同步日志文件记录到本地’
relay-log-index=slave-relay-bin.index      ‘定义relay-log的位置和名称’

[root@slave ~]# systemctl restart mysqld      ‘开启mysqld服务’
  • 进入数据库,配置同步
[root@slave ~]# mysql -uroot -p
mysql> change master to master_host='192.168.34.172',master_user='myslave',master_password='123',master_log_file='master-bin.000004',master_log_pos=603;
mysql> start slave;     ‘开启从服务’

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fzhWiyB4-1578837300435)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1578649264513.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RIZJDSGb-1578837300435)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1578835416273.png)]

四:实验验证

(1)在主服务器中新建一个数据库,在从服务器上查看 是否有新建的数据库 。有,则主从复制成功。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2AW2tIBv-1578837300436)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1578835895981.png)]

(2)在 从服务器中查看
在这里插入图片描述

Mysql 主从复制与读写分离是密切相关的,下一篇将介绍读写分离。

发布了62 篇原创文章 · 获赞 11 · 访问量 2345

猜你喜欢

转载自blog.csdn.net/XuMin6/article/details/103950227