0
点赞
收藏
分享

微信扫一扫

MySQL-主从复制

西曲风 2022-04-07 阅读 110

主从复制的原理图

在这里插入图片描述
主从复制其实就是使主库和从库数据一致,主库的数据变更,需要同步到从库中。
读写分离:如果是写操作(insert、update、delete),则直接操作主库;如果是读(select)操作,则直接操作从库(从库是可以有多个的)

使用主从复制原因(目的)

  • 在从主服务器进行备份,避免备份期间影响主服务器服务
  • 增加服务器的数量,读写分离,当主服务器出现问题时,可以切换到从服务器,提高并发性能。

主从复制的基本原理

如图所示,有两台服务器,一台master,一台slave初始数据一样:
首先master开启二进制日志(binary log),只要master数据变化,就将改变记录到二进制日志,master上面有一个dump线程,当二进制日志发生变化,通知slave服务器上的I/O线程来读master上的二进制日志,slave 将 master 的 二进制日志(binary log ) 拷贝到它的中继日志 (relay log) ,当中slave上还有一个sql线程,读取中继日志,并执行中继日志中的事件,使得slave上的数据和master数据一样,从而达到主从复制。

问题

主服务器如何知道从服务器上有哪些数据,需要从哪里开始给从服务器数据(从服务器如何知道从哪里开始获取服务器数据)
master-info文件的作用

  • 记录取日志结束的pos位置号,日志文件的名字

relay-log.info文件的作用

实验步骤

环境:有两台服务器,一台master(192.168.21.165),一台slave(192.168.21.191),保证主从服务器MySQL版本一致数据一致,在从服务器脚本直接安装MySQL。

1.主服务器master开启二进制日志,从服务器slave区分server-id =2

#配置文件[mysqld]新增两行打开
log_bin
server_id = 1 #区别服务器ID,从服务器也要写server-id =2,但是可以不加log_bin
service mysqld restart #重启mysql服务

2.保证主从服务器数据一致

mysqldump --all-databases >/backup/all_db.sql #备份主服务器所有数据
scp all_db.sql root@192.168.21.191 :/root #scp传输主服务器的备份到从服务器root目录下

3.master创建一个可以有复制权限的授权用户,这样slave可以来master复制二进制文件

mysql>grant replication slave on *.* to 'wyt'@'%' identified by '123456';

4.slave添加授权用户的信息

#先查看master当前二进制文件状态
mysql>show master status;
+----------------------+----------+--------------+------------------+-------------------+
| File                 | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+----------------------+----------+--------------+------------------+-------------------+
| localhost-bin.000003 |      436 |              |                  |                   |
+----------------------+----------+--------------+------------------+-------------------+

#到从服务器进入MySQL

CHANGE MASTER TO MASTER_HOST='192.168.21.165',
MASTER_USER='wyt',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='localhost-bin.000003',
MASTER_LOG_POS=436;
#查看slave状态
mysql>show slave status\G;
#可以看到 Slave_IO_Running: No  Slave_SQL_Running: No 所以需要开启
mysql>start slave;
举报

相关推荐

MySQL:主从复制

MYSQL主从复制

mysql 主从复制

MySQL主从复制

【MYSQL】主从复制

mySQL主从复制

mysql主从复制

0 条评论