1 -【 MySQL 集群 】- 2 MySQL 主从复制

1 主从复制介绍

MySQL 集群环境中,可以分为 主节点从节点,通过主从复制可以实现 数据备份故障转移MySQL集群高可用读写分离 等。

2 主从复制原理

MySQL 的主从复制是 MySQL 本身自带的一个功能,不需要额外的第三方软件就可以实现,其复制功能并不是 copy 文件来实现的,而是借助 binlog 日志文件里面的 SQL 命令实现的主从复制,可以理解为我在 Master 端执行了一条 SQL 命令,那么在 Salve 端同样会执行一遍,从而达到主从复制的效果。

从库生成两个线程,一个 I/O 线程,一个 SQL 线程。

  • I/O 线程:去请求主库的 binlog,并将得到的 binlog 日志写到 relay log(中继日志) 文件中;主库会生成一个 log dump 线程,用来给从库 I/O 线程传 binlog
  • SQL 线程:会读取 relay log 文件中的日志,并解析成具体操作,来实现主从的操作一致,而最终数据一致。

重点:

  • MySQL 主从复制:是 MySQL 本身自带的功能
  • MyCat:主要是做读写分离的,和 Nginx 非常相似

主从说明:

  • 主:会将 dmlsql 语句写入到二进制文件中(binLog
  • 从:
    • SQL 线程 的作用:就是在 IO 线程 获取到的二进制执行文件之后,通过 SQL 线程 进行执行二进制执行文件

在这里插入图片描述

3 MySQL 主从复制配置

3.1 主服务器节点

1、修改 MySQL 配置文件,新增以下内容:

vi /etc/my.cnf
server_id=101
log-bin=mysql-bin
  • server_id=101:服务器id
  • log-bin=mysql-bin:开启日志文件

在这里插入图片描述

2、重启 mysql 服务:

service mysqld restart

3、验证是否已经配置成功:

show variables like '%server_id%';

在这里插入图片描述

能够查询对应配置文件中的 server_id 说明已经配置成功。

4、查看二进制执行文件:

show master status;

在这里插入图片描述

能够看到同步的文件和行数,说明已经配置成功。

3.2 从服务器节点

参考文档安装 MySQL

1、修改 MySQL 配置文件,新增以下内容:

vi /etc/my.cnf
server_id=102
log-bin=mysql-bin
binlog_do_db=test
  • server_id=101:服务器id
  • log-bin=mysql-bin:开启日志文件
  • binlog_do_db=test:同步 test 数据库,多数据库使用 , 分隔

在这里插入图片描述

2、重启 mysql 服务:

service mysqld restart

3、验证是否已经配置成功:

show variables like '%server_id%';

在这里插入图片描述

能够查询对应配置文件中的 server_id 说明已经配置成功。

4、从服务器同步主服务器配置

change master to master_host='192.168.153.101',master_user='root',master_password='123456',
         master_log_file='mysql-bin.000003',master_log_pos=120;

对应的参数需要在主节点查询:
在这里插入图片描述
在这里插入图片描述

5、开始同步

start slave

在这里插入图片描述

6、检查从服务器复制功能状态

SHOW SLAVE STATUS

在这里插入图片描述

如果是克隆机器会产生错误 Slave_IO_RunningNo

日志显示错误:

Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.

解决办法:

因为服务器克隆的时候 UUID 产生了重复 ,解决办法:

cat  /etc/my.cnf
cd /var/lib/mysql
rm -rf auto.cnf

重启服务器即可:

service mysqld restart

3.3 测试

在主节点创建数据库:

在这里插入图片描述

从节点也会生出对应的数据库:
在这里插入图片描述

主节点数据库创建表

在这里插入图片描述

在这里插入图片描述

主节点表添加记录

在这里插入图片描述

在这里插入图片描述

问题:如果修改从节点的记录,会产生主从记录不一致的问题

这里就需要读写分离来实现从节点只能读

发布了687 篇原创文章 · 获赞 229 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/weixin_42112635/article/details/105118521