建议收藏!二十分钟教你学会MySQL-Replication(主从复制)

目录

一、主从复制

1.1、MySQL Replication

1.2、Replication原理

1.3、准备工作(两台虚拟机)

二、清理环境(两台机器)

三、安装数据库(两台机器)

四、配置mysql主从库

(1)配置主库

(2)配置从库


一、主从复制

1.1、MySQL Replication

主从复制(也称 AB 复制)允许将来自一个MySQL数据库服务器(主服务器)的数据复制到一个或多个MySQL数据库服务器(从服务器)。

MySQL主从复制的优点包括:

  • 横向扩展解决方案 - 在多个从站之间分配负载以提高性能。在此环境中,所有写入和更新都必须在主服务器上进行。但是,读取可以在一个或多个从设备上进行。该模型可以提高写入性能(因为主设备专用于更新),同时显着提高了越来越多的从设备的读取速度。

  • 数据安全性 - 因为数据被复制到从站,并且从站可以暂停复制过程,所以可以在从站上运行备份服务而不会破坏相应的主数据。

  • 分析 - 可以在主服务器上创建实时数据,而信息分析可以在从服务器上进行,而不会影响主服务器的性能。

  • 备份 - 可以使用从服务器数据进行备份,减轻主服务器的压力。

1.2、Replication原理

1.3、准备工作(两台虚拟机)

1)两台虚拟机都必须关闭防火墙和selinux

[root@master ~]# systemctl stop firewalld && setenforce 0

2)修改时区

[root@master ~]# timedatectl set-timezone Asia/Shanghai

3)  同步网络时间

[root@master ~]# ntpdate time.windows.com

4)  修改主机名(master主库)

[root@master ~]# hostnamectl set-hostname master

5)做本地域名解析

[root@master ~]# vim /etc/hosts

6)Net模式下,固定静态IP地址

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.222.141
PREFIX=24
GATEWAY=192.168.222.2
DNS1=114.114.114.114
DNS2=8.8.8.8

二、清理环境(两台机器)

[root@slave ~]# yum -y erase `rpm -qa |  grep -E "mysql|mariadb"`
[root@slave ~]# rm -rf /etc/my*  /var/lib/mysql* /var/log/mysql*
#检查一下
[root@slave ~]# [[ ! -f /etc/my.cnf ]] && [[ ! -d /var/lib/mysql ]] && [[ ! -f /usr/bin/mysql ]] && echo "数据库已清除" || echo "数据库未清理"

三、安装数据库(两台机器)

1)上传mysql压缩包 rz(需要安装lrzsz)

[root@slave ~]#  rz

2)解压

[root@slave ~]# tar xzvf mysql

3)初始化数据库

[root@slave ~]# systemctl start mysqld

4)修改数据库初始密码

[root@slave ~]# mysqladmin -p"`awk '/temporary password/{p=$NF}END{print p}' /var/log/mysqld.log`" password 'Qianfeng@123'

四、配置mysql主从库

(1)配置主库

1)创建binlog日志存放路径

[root@master ~]# mkdir -p /data/binlog

2)修改权限

[root@master ~]# chown -R mysql.mysql /data/binlog

3)修改MySQL配置文件

[root@master ~]# vim /etc/my.cnf
[mysqld]
server-id = 141
log-bin=/data/binlog/mysql-bin

4)重启数据库

[root@master ~]# systemctl restart mysqld

5)查询master状态

mysql> show master status\G

6)授权账号

mysql> grant replication slave on *.* to 'replication'@'%' identified by "Qianfeng@123456";
mysql> flush privileges;

(2)配置从库

1)修改MySQL配置文件

[root@master ~]# vim /etc/my.cnf
[mysqld]
server-id = 151

2)重启MySQL

[root@slave ~]# systemctl restart mysqld

3)配置从库

mysql> change master to 
    -> master_host='master', 
    -> master_port=3306,
    -> master_user='replication',
    -> master_password='Qianfeng@123456',
    -> master_log_file='mysql-bin.000001',
    -> master_log_pos=596;

4)启动slave

mysql> start slave;

5)刷新slave

MySQL> reset slave;

6)查看slave状态

mysql >show slave status\G

如果查询lslave状态出现两个yes,即我们的主从复制配置成功啦。小伙伴们快学起来吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值