MySQL运维学习(2):主从复制

1.什么是主从复制

*主从复制是指将主数据库的DDL和 DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。

MySQL支持一台主库同时向多台从库进行复制,从库也可以作为其他从服务器的主库,实现链状复制。

MySQL复制的有点主要包含以下三个方面

(1)主库出现问题,可以快速切换到从库提供服务。

(2)实现读写分离,降低主库的访问压力。

(3)可以在从库中执行备份,以避免备份期间影响主库服务

2.主从复制原理

从库使用IOthread进程读取主库binlog,并存储为本地的relay log,然后从库再通过SQLthread进程读取本地relay log,以达到与主库同步

3.主从复制配置过程

3.1环境准备

(1)准备2台安装了相同版本mysql的服务器。我这里是2台centos7.6,安装了mysql8.3.0

(2)关闭两台服务器的防火墙,或者是开放2台服务器的3306端口

3.2主库配置

3.2.1修改主库配置文件/etc/my.cnf

在文件添加下面的内容:

server-id=1
#mysql服务ID,保证整个集群环境中唯一。

read-only=0
#是否只读。1 代表只读,0代表读写

#binlog-ignore-db=xxx
#指定不需要同步的数据库,可以不配置

#binlog-do-db=xxx
#指定同步的数据库编辑,可以不配置
#不配置的情况下,就是复制所有数据库

修改后重启mysqld

3.2.2登录mysql,创建远程连接的账号,并赋予其主从复制权限

create user '用户名'@'%' identified with mysql_native_password by '密码';
#创建一个用于远程连接的用户

grant replication slave on *.* to '用户名'@'%';
#赋予该用户主从复制权限

这个账户是让从库来主库用的

3.2.3查看二进制日志坐标

show master status;

file:推送日志文件的起始文件

position:从日志文件的哪个位置开始推送

这个信息会在之后从库的配置中用到

3.3从库配置

3.3.1修改从库配置文件/etc/my.cnf

 在文件添加下面的内容:

server-id=2
#标号数字与主库不一样即可

read-only=1

配置完同样需要重启mysqld。

read-only=1不能限制超级用户的写操作,如果想限制超级用户,可以在文件中加上下面的语句:

super-read-only=1

3.3.2登录从库mysql,建立主从库连接

change replication source to source_host='主库ip',
source_user='连接主库的远程用户名',
source_password='用户密码',
source_log_file='binlog文件名',
source_log_pos=binlog文件位置;

命令中的binlog文件名、binlog文件位置就是在主库中用show master status;查出来的信息

除了最后的binlog文件位置不需要单引号,其他的信息都需要加上单引号

上面的命令是在mysql8.0.23及之后的版本中使用的。如果是8.0.23之前的版本,可以使用下面的语句:

change master to master_host='主库ip',
master_user='连接主库的远程用户名',
master_password='用户密码',
master_log_file='binlog文件名',
master_log_pos=binlog文件位置;

3.3.3开启同步

start replica;
#mysql8.0.23及之后的版本使用这条命令

start slave;
#mysql8.0.23之前的版本使用这条命令

3.3.4查看主从同步状态

show replica status\G;
#mysql8.0.23及之后的版本使用这条命令

show slave status\G;
#mysql8.0.23之前的版本使用这条命令

看到结果中的两个进程都为yes,说明配置成功

开启同步后,主库进行的DDL、DML都会同步到从库上,从库的操作则不会同步到主库上。

开启同步之前的从库与主库的配置不会同步

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值