Mysql8.0.20主从备份和同步,有图有代码,且简单易懂

Mysql8.0.20主从备份和同步

主从备份需要注意的点

  • 主从数据库的版本一致
  • 主从数据库中需要同步的数据库数据要一致
  • 主从节点都开启二进制日志
  • 主从节点的server_id必须不一样,要保证其唯一性

1、首先准备两台服务器,每个服务器上有一个数据库

2、主节点的配置

首先关掉MySQL服务,然后修改my.ini配置文件

[mysqld]
# log-bin、binlog-do-db、binlog-ignore-db、server-id
log-bin = mysql-bin
# 需要同步的数据库名,多个配置多行
binlog-do-db = database1
binlog-do-db = database2
# 不同步的数据库,多个配置多行
binlog-ignore-db = mysql
#主节点id
server-id = 1

在主节点上配置REPLICATION SLAVE权限

mysql> CREATE USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.01 sec)

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
Query OK, 0 rows affected (0.01 sec)

mysql> show grants for repl;
+----------------------------------------------+
| Grants for repl@%                            |
+----------------------------------------------+
| GRANT REPLICATION SLAVE ON *.* TO `repl`@`%` |
+----------------------------------------------+
1 row in set (0.02 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

重启MySQL服务

3、从节点配置

首先关掉MySQL服务,然后修改my.ini配置文件(和主节点配置差不多,server-id不同就行)

[mysqld]
# log-bin、binlog-do-db、binlog-ignore-db、server-id
log-bin = mysql-bin
# 需要同步的数据库名,多个配置多行
binlog-do-db = database1
binlog-do-db = database2
# 不同步的数据库,多个配置多行
binlog-ignore-db = mysql
#从节点id
server-id = 2

重启MySQL服务

4、查看主节点状态

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      156 | sss          |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.03 sec)

5、从节点上配置主节点的参数

MASTER_LOG_FILE=‘mysql-bin.000001’ 是上一步的File字段的值
MASTER_LOG_POS=156; 是上一步Position字段的值
其他三个分别为主节点IP、MySQL用户名和密码

mysql> CHANGE MASTER TO
MASTER_HOST='192.168.1.167',
MASTER_USER='repl',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=156;
Query OK, 0 rows affected (1.62 sec)

mysql> 
start slave;
Query OK, 0 rows affected (0.10 sec)

mysql> 

6、查看状态

show slave status ;

如果下面的字段跟你配置的一样而且Slave_IO_Running和Slave_SQL_Running为yes就成了
在这里插入图片描述

到这里已经实现了主从备份
实验结果为在主库中加数据,从库也会跟着增加,但从库增加数据主库不会增加

Mysql实现互为主从

为了服务的高可用,来实现互为主从,也就是解决从库增加数据主库不会增加的问题
为了方便理解以下所讲的主节点是上面文章中介绍的主节点(其实这里的主节点应该叫做从节点),从节点是上面文章中介绍的从节点(以下应该叫主节点)

1、首先上面的步骤必须完成

2、查看从节点状态

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |     1894 | sss          |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.02 sec)

3、主节点上配置从节点的信息

mysql> CHANGE MASTER TO
MASTER_HOST='192.168.1.200',
MASTER_USER='repl',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=1894;
Query OK, 0 rows affected (0.05 sec)

mysql> start slave;
Query OK, 0 rows affected (0.03 sec)

4、查看状态(这里是在主节点上看)

show slave status ;

结果是你配置的信息就没问题,跟上面第6步一样
现在在从节点的数据库中增加、修改、删除等操作,主节点也会同步

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值