欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mysql——主从复制

程序员文章站 2022-05-08 23:08:56
...

一、什么是主从复制

MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。

二、主从复制应用场景

在企业网站中,后端MySQL数据库只有一台时,会存在以下问题:

  • 单点故障,服务不可用
  • 无法处理大量的并发数据请求(导致效率慢,访问超时)
  • 数据丢失

解决方案:

  • 增加MySQL数据库服务器,对数据进行备份,形成主备
  • 确保主备MySQL数据库服务器数据是一样的
  • 主服务宕机了,备份服务器继续工作,数据有保障

解决方案(高级):

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

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

Mysql——主从复制

三、MySQL主从复制的类型

  • 基于语句的复制(默认)
    • 在主服务器上执行的语句,从服务器执行同样的语句
  • 基于行的复制
    • 把改变的内容复制到从服务器
  • 混合类型的复制
    • 一旦发现基于语句无法精确复制时,就会采用基于行的复制

四、主从复制的工作过程

Mysql——主从复制

五、主从复制示例

环境:

1、3台服务器,部署好mysql服务

2、1台主服务器,2台从服务器

主服务器(master) 192.168.17.157
从服务器(slave 1) 192.168.17.129
从服务器(slave 2) 192.168.17.135

1、主服务器配置

#安装ntp协议

[aaa@qq.com ~]# yum install ntp -y

#进入主配置文件进行相应的配置

[aaa@qq.com ~]# vim /etc/ntp.conf 

Mysql——主从复制

#关闭防火墙,开启服务

[aaa@qq.com ~]# systemctl start ntpd
[aaa@qq.com ~]# systemctl stop firewalld.service 
[aaa@qq.com ~]# setenforce 0

#更改mysql主配置文件

[aaa@qq.com ~]# vim /etc/my.cnf

Mysql——主从复制

更改配置文件后重启mysql服务

[aaa@qq.com ~]# service mysqld restart

#进入数据库进行相关配置

[aaa@qq.com ~]# mysql -u root -p
Enter password: 

Mysql——主从复制

2、从服务器(slave 1)配置

#安装ntp协议及ntpdate用于时间同步

[aaa@qq.com ~]# yum install ntp ntpdate -y

#关闭防火墙,开启ntp服务

[aaa@qq.com ~]# systemctl start ntpd
[aaa@qq.com ~]# systemctl stop firewalld.service 
[aaa@qq.com ~]# setenforce 0

#进行时间同步,时间源为主服务器

[aaa@qq.com ~]# /usr/sbin/ntpdate 192.168.17.157
 9 Jan 16:58:29 ntpdate[5228]: the NTP socket is in use, exiting

#更改mysql主配置文件

[aaa@qq.com ~]# vim /etc/my.cnf

Mysql——主从复制

更改配置文件后重启mysql服务

[aaa@qq.com ~]# service mysqld restart

#进入数据库进行相关配置

[aaa@qq.com ~]# mysql -u root -p
Enter password: 

Mysql——主从复制Mysql——主从复制

3、从服务器(slave 2)配置

#安装ntp协议

[aaa@qq.com ~]# yum install ntp ntpdate -y

#关闭防火墙,开启ntp服务

[aaa@qq.com ~]# systemctl start ntpd
[aaa@qq.com ~]# systemctl stop firewalld.service 
[aaa@qq.com ~]# setenforce 0

#进行时间同步,时间源为主服务器

[aaa@qq.com ~]# /usr/sbin/ntpdate 192.168.17.157
9 Jan 17:45:03 ntpdate[7762]: the NTP socket is in use, exiting

#更改mysql主配置文件

Mysql——主从复制

更改配置文件后重启mysql服务

[aaa@qq.com ~]# service mysqld restart

#进入数据库进行相关配置

[aaa@qq.com ~]# mysql -u root -p
Enter password: 

Mysql——主从复制
Mysql——主从复制

4、主从复制验证

#主服务器创建库

Mysql——主从复制

#slave1查询库

Mysql——主从复制

#slave2查询库

Mysql——主从复制

实验结果验证:在主服务器上执行的语句,从服务器也会执行同样语句

相关标签: Mysql 主从复制