mysql数据库--主从同步功能实现

一.为何要进行主从复制?

在企业网站中,如果后端只要一台 Mysql 服务器时,就会造成,比如单点故障,无法处理大量的并发数据请求和造成数据丢失等一系列问题。
因此,这就体现了 Mysql 主从复制的重要性了

  • 一台主 Mysql 服务器,多台从服务对数据进行备份,形成主备;
  • 确保主备 Mysql数据库服务器的数据是一样的;
  • 主服务器宕机了,备服务器依旧可以继续工作,数据有保障。

二.Mysql 主从复制的类型:

1.基于语句的复制(默认):
在主服务器上执行的语句,从服务器执行同样的语句。

2.基于行的复制:
把改变的内容复制到从服务器。

3.混合类型的复制:
一旦发现基于语句无法精确复制时,就会采取基于行的复制。

三.案例演示:

环境准备:

  • 三台虚拟机,都搭建好 Mysql5.6版本服务;
  • 一台做主服务器,另外两台做从服务器;

1.主服务器IP地址为192.168.179.188

//安装时间同步
yum install ntp -y

//修改ntp主配置文件,添加
vim /etc/ntp.conf
server 127.127.179.0
fudge 127.127.179.0 stratum

//开启ntp服务
service ntpd start
关闭防火墙

2.从服务器同步主服务器时间,两台服务器都要配置安装ntp ntpdate软件包

//从服务安装
yum install ntp ntpdate -y

//开启ntp服务
service ntpd start 
关闭防火墙

//与主服务器时间同步
/usr/sbin/ntpdate 192.168.179.188
 8 Jan 20:04:19 ntpdate[22625]: the NTP socket is in use, exiting

主服务器配置

//修改主服务器配置文件
vim /etc/my.cnf
server-id	= 11          //查找id更改11
log-bin=master-bin                //开启主服务器二进制日志文件功能
log-slave-updates=true          //开启从服务器更新二进制日志文件功能


//重启服务
pkill -9 mysqld               //注意每次从重启服务都需要结束原先服务的进程号
service mysqld restart

//进入数据库
mysql -uroot -p

//输入命令
GRANT REPLICATION SLAVE ON *.* TO 'myslave'@'192.168.179.%' IDENTIFIED BY '123456'; 
FLUSH PRIVILEGES;

//查看二进制文件功能
show master status 

 从服务器1配置


//修改从服务器主配置文件,修改ID号,添加开启复制主服务二进制日志功能
server-id	= 22          //(ID不能相同),另一台也不能相同
relay-log=relay-log-bin            //从主服务器上同步日志文件记录
relay-log-index=slave-relay-bin-bin.index  //定义relay-log的位置和名称

//重启服务
pkill -9 mysqld
service mysqld restart

//进入数据库输入
mysql -uroot -p 
change master to master_host='192.168.179.188',master_user='myslave',master_password='123456',master_log_file='master-bin.000003',master_log_pos=412;

//开启同步功能
start slave;

//查看同步功能状态
show slave status\G;

 从服务器2配置

//修改从服务器主配置文件,修改ID号,添加开启复制主服务二进制日志功能
server-id	= 23          //(ID不能相同),另一台也不能相同
relay-log=relay-log-bin            //从主服务器上同步日志文件记录
relay-log-index=slave-relay-bin-bin.index  //定义relay-log的位置和名称

//重启服务
pkill -9 mysqld
service mysqld restart

//进入数据库输入
mysql -uroot -p 
change master to master_host='192.168.179.188',master_user='myslave',master_password='123456',master_log_file='master-bin.000003',master_log_pos=412;

//开启同步功能
start slave;

//查看同步功能状态
show slave status\G;

验证主从同步:

在主服务器创建一个yun的数据库

create database yun;
Query OK, 1 row affected (0.00 sec)

在两台从服务器上查询是否有yun数据库

发布了78 篇原创文章 · 获赞 5 · 访问量 2583

猜你喜欢

转载自blog.csdn.net/qq397750142/article/details/103897578
今日推荐