mysql主库从库在同一台服务器_MySQL主从复制与双主互备

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-31 21:57   11   0

fac25a750aaf01d0249c94b494f71cf5.png

一、Centos7搭建MySQL主从复制(冷备)

主从复制原理

1 Master将改变记录到二进制日志(binary log)中
2 Slave将Master的二进制日志事件(binary log events)拷贝到它的中继日志(relay log)
3 Slave重做中继日志(Relay Log)中的事件,将Master上的改变反映到它自己的数据库中
4 这些是由从库在做,所以是异步的数据同步

bd2dcc5dcfd831b841582c9a8f8cdfcb.png

主从复制应用场景

1 主从服务器互为备份,加强数据库架构的健壮性
2 主从服务器读写分离,分担网站压力,从服务器只处理用户的查询请求
3 将从服务器,按照业务拆分,分担压力

主从复制实践

1. 必须检查防火墙是否已经关闭,若开启状态,先关闭

systemctl status firewalld.servic

442fdb352081ac70b7e1cd571758b4d5.png

注:主从服务器都要关闭

2. 主服务器配置

① 复制mysql配置文件模板到/etc/my.cnf

② 重新启动MySQL

cp /usr/share/mysql/my-medium.cnf /etc/my.cnf 
service mysql restart

594062eec46c3d1341d3619d639d28e3.png

③ 进入MySQL,查看server_id

show variables like 'server_id'; 

5e42b39f71e179ec368a4f8fe569c6d9.png

④ 查看MySQL主库的日志文件信息

show master status; 

662a0deb83aca9cccd732057441e5ef5.png

从服务器的配置

① 复制mysql配置文件模板到/etc/my.cnf

② 修改配置文件/etc/my.cnf的sercer_id,这里修改为2

③ 重新启动MySQL

cp /usr/share/mysql/my-medium.cnf /etc/my.cnf   
vim /etc/my.cnf 
service mysql restart

ec0872e9e79c9064b8a1ab398486c914.png

c1bc2df63386a35b8d208001cda2e968.png

④ 进入从MySQL查看server_id是否修改成功

show variables like 'server_id';

3f9a02fda00fa605ae18c27555f129df.png

⑤ 设置跟踪主库日志文件

从库MySQL中输入如下信息
  • master_host 为主库IP地址
  • master_user 为主库用户名
  • master_password 为主库密码
  • master_log_file 为主库日志文件
  • master_log_pos 为主库日志所占位置
change master to
master_host='192.168.110.130',
master_user='root',
master_password='1234',
master_log_file='mysql-bin.000001',
master_log_pos=107;

7bd017c1a110949f898ae0f18e7dda18.png

⑥ 启动slave服务,并查看slave服务信息

start slave;
show slave statusG;

cd73e9fd6e2c35639e9d7afa6f269e7b.png

3. 主服务器设置授权并刷新设置, 否则无法完成主从复制, 注意是在主服务器执行授权

grant all privileges on . to 'root'@'%' identified by '1234' with grant option;  
# all privileges:表示将所有权限授予给用户。也可指定具体的权限,如:SELECT、CREATE、DROP等。   
# on:表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写“*”表示所有数据库,所有表。   
# to:将权限授予哪个用户。格式:”用户名”@”登录IP或域名”。%表示没有限制,在任何主机都可以登录。   
# identified by:指定用户的登录密码。   
# with grant option:表示允许用户将自己的权限授权给其它用户。
flush privileges;   
# flush privileges 刷新MySQL的系统权限相关表

a58c370f493b6b214217c1d258e9da8b.png

4. 主从复制测试

7c9bc9ed901621b47a97234434ef88c7.png

c91b81caf1d1d3e781a26e4975dd5df3.png

二、CentOS7搭建MySQL双主互备(热备)

双主互备就是要保持两个数据库的状态自动同步,对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致,这样做的意义是既提高了数据库的容灾性,又可以做负载均衡,可以将请求分摊到其中任何一台上,提高网站吞吐量

双主互备实践

  1. 基于以上,查看从服务器日志信息
show master status;

93056a4785642020101f3b3aa6f5bff8.png

1. 主服务器配置

① 设置跟踪主库日志文件

主库MySQL中输入如下信息
  • master_host 为从库IP地址
  • master_user 为从库用户名
  • master_password 为从库密码
  • master_log_file 为从库日志文件
  • master_log_pos 为从库日志所占位置
change master to
master_host='192.168.110.131',
master_user='root',
master_password='1234',
master_log_file='mysql-bin.000001',
master_log_pos=107;

c2519cd86f76a1c3d6146953e46d84f5.png

② 启动slave服务,并查看信息

start slave;
show slave statusG; 

e1c8807981d48eb8e3d6189a29f3e7f3.png

2. 双主互备测试

be6e4b386fa412f828401c669c2e2720.png

156401e2fae9922e8ac38672cb9bda9b.png
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP