MySQL 主从复制

Posted ownlate

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 主从复制相关的知识,希望对你有一定的参考价值。

了解mysql主从复制:
MySQL的复制功能是构建大型,高性能应用程序的基础。主从复制是指一台服务器充当主数据库服务器(master),另一台或多台服务器充当从数据库服务器(slave),主服务器中的数据自动复制到从服务器之中。MySQL主从复制的基础是主服务器对数据库修改并记录二进制日志,从服务器通过主服务器的二进制日志自动执行更新。

复制解决的问题:

  • 数据分布 (Data distribution)
  • 负载均衡 (Load balancing)
  • 高可用及容错 (High availability and failover)
  • 备份(Backups)

MySQL复制的类型:

  • SBR(statement based replicate):基于语句的复制,在主服务器上执行的SQL语句,在从服务器上执行同样的语句。
  • RBR(row based replicate):基于行的复制,将主服务器上改变的内容复制过去。
  • MIX(mixed):默认采用基于语句的复制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制。

MySQL主从复制原理:

技术分享图片

  1. master将改变的内容记录到二进制日志中(binary log),这些记录叫做二进制日志事件(binary log events);
  2. slave通过 IO thread 接收master的binary log,并写入到slave的 realay log(中继日志)中,SQL thread 从realay log 读取事件,并更新slave数据。

 

MySQL主从配置:

master配置:
禁用GTID:gtid_mode=OFF
server_id:103306 (建议IP后两位加数据库端口号)
log_bin:log_bin=ON
binlog_format:binlog_format=ROW (可选:mixed|statement )
创建复制账号:

grant replication slave on *.* to repl@% identified by password;


查看master状态:

show master status\\G;

查看Binlog Dump:

show processlist\\G;

  Command: Binlog Dump
  State: Master has sent all binlog to slave; waiting for more updates

 

slave配置:
禁用GTID:gtid_mode=OFF
server_id:113306 (建议IP后两位加数据库端口号)
log_bin:log_bin=ON
log_slave_updates:log_slave_updates=ON
连接主库:

CHANGE MASTER TO
 MASTER_HOST=192.168.100.10,
 MASTER_USER=repl,
 MASTER_PASSWORD=password,
 MASTER_PORT=3306,
 MASTER_LOG_FILE=mysql-bin.000002,
 MASTER_LOG_POS=3141

开启同步:

start slave;

其他命令:

stop slave:关闭同步
start slave io_thread:开启IO线程,stop 关闭
start slave sql_thread:开始SQL线程,stop 关闭

查看slave状态:

show slave status\\G;

  Slave_IO_Running: Yes
  Slave_SQL_Running: Yes
IO thead 和 SQL thead线程:

show processlist\\G;

  Command: Connect
  State: Waiting for master to send event
  Command: Connect
  State: Slave has read all relay log; waiting for more updates























以上是关于MySQL 主从复制的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 主从复制与读写分离(原理深刻,过程详细,值得一看)

MySQL主从复制与读写分离

MySQL主从复制及读写分离实际部署与验证

MySQL主从复制及读写分离实际部署与验证

mysql实现主从复制/主从同步

MySQL主从复制以及读写分离(❤❤❤❤含理论和实验❤❤❤❤大家中秋快乐!㊗)