MySQL数据库主从复制

主从复制原理

  • MySQL的复制类型
    • 基于语句的复制 (默认)
    • 基于行的复制
    • 混合类型的复制
  • MySQL主从复制的工作过程

主从复制设置

主从复制时基于二进制文件的所以需要打开二进制文件

主数据库

在MySQL配置文件/etc/my.cnf修改或增加
#启用了MySQL的二进制日志功能二进制文件名字

log-bin=主机名-bin
#二进制文件格式
binlog_format = MIXED
#设置MySQL服务器的唯一ID为1
server-id=1

重启mysql服务
systemctl restart mysqld

登录mysql创建一个用于复制的用户并授权
mysql -uroot -p

grant replication slave on *.* to 'myslave'@'192.168.78.%' identified by '123465';

刷新权限
flush privileges;    

查看当前MySQL数据库当前二进制文件最新的信息,文件名与位置和偏移量
show master status;

 从数据库

主从数据库的MySQL唯一ID不可以相同

在MySQL配置文件/etc/my.cnf修改或增加
#启用了MySQL的二进制日志功能二进制文件名字

log-bin=主机名-bin
#二进制文件格式
binlog_format = MIXED
#设置MySQL服务器的唯一ID为2
server-id=2

重启mysql服务
systemctl restart mysqld

设置主服务器数据库的信息
mysql -uroot -p

change master to 
#主服务器的IP地址或主机名
master_host='192.168.78.129',
#用于连接到数据库的MySQL用户名    
master_user='myslave',
#MySQL用户的密码
master_password='123456',
#从哪个二进制日志文件开始复制
master_log_file='master-bin.000001',
#从二进制文件的哪个位置开始复制
master_log_pos=1103;

#下面这两个可以不用设置
#主服务器监听的端口号(默认为3306)
master_port=port_number
#如果连接失败,重新连接的间隔时间
MASTER_CONNECT_RETRY=interval


开启从服务器复制线程

MySQL会从配置的二进制日志文件的指定位置开始读取事件,并将这些事件应用到从服务器的数据上,以保持与主服务器的数据一致
start slave;        //开启复制线程
stop    slave;        //关闭复制线程
reset slave;        //重置复制线程

显示MySQL从节点的复制状态(注意 \G 是让MySQL以更易于阅读的格式输出结果,即每行一个字段值)

查看服务器复制状态
show slave status\G;    
关键字段和含义

必须保证Slave_IO_Running和Slave_SQL_Running均为yes才算主从复制成功

  • Slave_IO_Running:显示I/O线程的状态(Yes 表示正在运行,No 表示停止)。
  • Slave_SQL_Running:显示SQL线程的状态(Yes 表示正在运行,No 表示停止)。
  • Slave_IO_State: I/O线程当前的状态,比如正在连接主服务器、正在请求二进制日志事件等。
  • Master_Host, Master_User, Master_Port: 分别表示主服务器的地址、用于连接的用户名和端口号。
  • Connect_Retry: 如果连接失败,重试连接的间隔时间(秒)。
  • Master_Log_File, Read_Master_Log_Pos: 分别表示从服务器正在读取的主服务器的二进制日志文件名和位置。
  • Relay_Master_Log_File, Exec_Master_Log_Pos: 分别表示从服务器已经执行到哪个主服务器的二进制日志文件和位置。
  • Slave_IO_Running, Slave_SQL_Running: 分别表示I/O线程和SQL线程的状态(Yes表示正在运行,No表示停止)。
  • Last_IO_Error, Last_SQL_Error: 分别表示I/O线程和SQL线程遇到的最后一个错误(如果有的话)。
  • Seconds_Behind_Master: 表示从服务器落后主服务器多少秒,即复制延迟。
  • Relay_Log_Space: 所有中继日志占用的空间大小(字节)。
  • Until_Condition, Until_Log_File, Until_Log_Pos: 这些字段用于设置从服务器复制到哪个日志文件的哪个位置就停止,通常用于故障恢复或数据迁移。
  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL数据库主从复制是一种用于解决MySQL单点故障和提高整体服务性能的技术。它的原理是通过将主数据库的更新操作复制到从数据库,使得从数据库可以保持与主数据库的数据一致性。[1] 在实际的生产环境中,主从复制被广泛应用于增加MySQL的可用性和性能。通过配置主从复制,可以实现数据的备份和读写分离,从而提高整体的系统性能。 主从复制MySQL中具有很多优势,它可以提供高可用性、高性能和灵活性。通过主从复制,可以简化MySQL的部署过程,并根据不同的业务需求进行灵活的调整。 总结来说,MySQL数据库主从复制是一种解决单点故障和提高性能的技术,它通过复制主数据库的更新操作到从数据库来实现数据的备份和读写分离。这种技术可以提供高可用性、高性能和灵活性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [MySQL数据库——主从复制](https://blog.csdn.net/qq_41808387/article/details/107009748)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [MySQL主从复制](https://blog.csdn.net/m0_62473957/article/details/124140928)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值