Centos7下mysql主从备份(读写分离)环境搭建

Mysql读写分离

背景:
  在web网站开发当中,网站优化是一门高深的学问:主要可以用到两个方面的技术:

缓存技术

  • 数据库缓存
  • 文件缓存
  • 雪碧图

负载均衡技术

  • 数据库的主从备份(读写分离)

  在日常工作当中,可能遇到同样一个数据库,有的表查询频繁,比如文章表,信息表,有的表插入频繁,比如注册表。用同一台mysql服务器完成大量的查询和插入事务,效率较低,于是就需要使用mysql的主从备份:
在这里插入图片描述

主从备份搭建:

1、环境准备,两台Centos7虚拟机
master主库:10.10.21.73
salve从库:10.10.21.130
测试连通性:
在这里插入图片描述

2、两台虚拟机安装mariadb服务并启动服务
10.10.21.73主库
在这里插入图片描述
10.10.21.130从库
在这里插入图片描述
在这里插入图片描述
3、为root用户设置密码
  配置mariadb的生产模式,默认yum安装的mariadb是一种宽松的开发模式,任何账号,不通过密码都可以进入。如果在生产环境需要开启生产模式,这个模式也是主从备份必须的:

mysql_secure_installation

主库设置:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从库root密码配置:同上

4、主库(服务器端)10.10.21.73配置:
创建要进行备份的数据库

create database OurBlog charset=utf8;

在这里插入图片描述
对从库(客户端)进行授权:

grant replication slave on *.* to "root"@"%" identified by '123' with grant option;

在这里插入图片描述
刷新授权表

flush privileges;

在这里插入图片描述
创建备份表

create table article(id int primary key auto_increment,title char(32));

在这里插入图片描述
数据库导出(为避免从库自己创建时,一遍结构或者编码导致的不兼容)

mysqldump -h localhost -u root -p123 OurBlog > Ourblog.sql

在这里插入图片描述
使用scp将文件传递到10.10.21.130从库的opt下:
在这里插入图片描述

5、从库(客户器端)10.10.21.130配置:
查看OurBlog.sql文件是否传输过来:
在这里插入图片描述
在导入数据库之前,客户端10.10.21.130上创建OurBlog数据库(因为我们所导入数据库一般指的是数据库表及表数据)
在这里插入图片描述
把10.10.21.73上的数据库导入到从库:

mysql -h localhost -u root -p123 OurBlog < Ourblog.sql

在这里插入图片描述
查看导入效果:
在这里插入图片描述

6、关闭主从服务器的防火墙和selinux
主库10.10.21.73
在这里插入图片描述
从库10.10.21.130
在这里插入图片描述

7、修改主库(10.10.21.73)的配置文件
vim /etc/my.cnf
在[mysqld]下添加如下配置

  • sever-id=1
  • log_bin=mysql-bin?
  • binlog-do-db=OurBlog
  • binlog-ignore-db=mysql

在这里插入图片描述

重启mariadb服务:
在这里插入图片描述

8、修改从库(10.10.21.130)的配置文件
vim /etc/my.cnf
在[mysqld]下添加如下配置

  • sever-id=2
  • log_bin=mysql-bin?
  • binlog-do-db=OurBlog
  • binlog-ignore-db=mysql

在这里插入图片描述
重启服务
在这里插入图片描述

9、查看主服务器10.10.21.73的状态

show master status;

记录file文件名和position的文件名和值,后面客户端备份配置有用
在这里插入图片描述

10、从库(10.10.21.130)开始备份配置

-> change master to master_host='10.10.21.73',
-> master_user='root',
-> master_password='123',
-> master_log_file='mysql-bin?.000001',
-> master_log_pos=245;

在这里插入图片描述
启动备份:

slave start;

在这里插入图片描述
查看从库备份状态:

show slave status\G;

在这里插入图片描述
如果上图出现了NO,解决方法:

  • 1、停止备份: slave stop
  • 2、退出mysql 重新启动服务端和客户端的mysql: systemctl restart mariadb
  • 3、开始备份:slave start

11、测试主从备份的效果
查看从数据库(10.10.21.130)OurBlog.article没有任何数据
在这里插入图片描述
主库(10.10.21.73)插入数据
在这里插入图片描述
查看从库备份情况:(已成功备份)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孜孜孜孜不倦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值