Mysql主从复制原理及其配置

主从复制原理

MySQL数据库的主从复制是基于MySQL二进制日志,通过bin log日志复制需要同步的从服务器上。主要包括三个线程(2个I/O线程,1个SQL线程)。它和MySQL的读写分离有着必然的联系,首先要部署主从复制,完成之后才能进行数据的读写分离。一台服务器档当主服务器,接受来自来自用户的内容更新,而一个或多个其他的服务器来当从服务器,接受来自主服务器上binlog文件的日志内容,解析出SQL,重新更新到从服务器。使得主从服务器的数据达到一致。

简单讲就是AB两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,实现数据实时同步
主从复制步骤

1.当Master节点进行insert、update、delete操作时,会按顺序写入到binlog中。
2.salve从库连接master主库。
3.当Master节点的binlog发生变化时,binlog dump 线程会通知所有的salve节点,并将相应的binlog内容推送给slave节点。
4.I/O线程接收到 binlog 内容后,将内容写入到本地的 relay-log。
5.SQL线程读取I/O线程写入的relay-log,并且根据 relay-log 的内容对从数据库做对应的操作

主库配置

1.server_id设置并开启binlog参数

[root@localhost ~]# vim /etc/my.cnf

server_id=1

log_bin=mysql_bin

2.重启mysql服务

[root@localhost ~]# systemctl restart mysqld

3.登录MySQL 授权用户

mysql>  grant replication slave on *.* to 'rep1'@'192.168.244.%' ide

Query OK, 0 rows affected, 1 warning (0.00 sec)

查看信息

mysql> mysql> show master status;

从库配置

1.设置server_id值,并重启mysql服务

[root@localhost ~]# vim /etc/my.cnf

server_id=2

[root@localhost ~]# systemctl restart mysqld

2.设置主从库同步

mysql> change master to

MASTER_HOST='192.168.244.146',

MASTER_PORT=3306,

MASTER_USER='rep1',

MASTER_PASSWORD='RedHat@123',

MASTER_LOG_FILE='mysql-bin.000003',

MASTER_LOG_POS=154;

3.启动从库同步开关

mysql> start slave;

Query OK, 0 rows affected (0.00 sec)

检查状态

mysql> show slave status;

你可能感兴趣的:(数据库,mysql,运维,linux)