登录
首页 >  数据库 >  MySQL

mysql主从理解和配置

来源:SegmentFault

时间:2023-01-24 20:41:06 205浏览 收藏

小伙伴们对数据库编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《mysql主从理解和配置》,就很适合你,本篇文章讲解的知识点主要包括MySQL、MySQL主从。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!

二进制日志(bin-log)的说明——主从的前提

bin-log的相关字段和文件说明

查看日志日否开启等信息情况

  • log_bin:是否开启
  • log_bin_basename:二进制日志文件名字(实际情况下会在后面加上
    # 参数说明
    master_host:# master ip
    master_port: # master 端口号
    master_user: # 连接主库的用户名
    master_password: # 连接主库的密码
    master_log_file: # 启动是开始读取的二进制日志
    master_log_pos: # 打算从主库开始复制的日志节点,对应日志文件中的position
    
    # 执行语句
    change master to
    master_host='192.168.153.129',
    master_port=3306,
    master_user='slave_user',
    master_password='slave_pwd',
    master_log_file='mysql-bin.000001',
    master_log_pos=0;
    
    # 启动从节点
    start slave;
    
    # 停止从节点
    stop slave;
    
    # 清除slave信息(配置有误的时候用)
    reset slave;

    image.png

    验证从库是否启动正常(在从库中执行):

    show slave status\G
    
    # 主要看字段信息
    slave_io_running:表示异步连接主库进行binlog同步的IO是否正常
    slave_sql_running:表示中继日志文件同步到磁盘是否正常
    
    Last_IO_Errno: 对应slave_io_running错误的错误码
    Last_IO_Error: 对应slave_io_running错误的错误信息
    Last_SQL_Errno: 对应slave_sql_running错误的错误码
    Last_SQL_Error: 对应slave_sql_running错误的错误信息

    image.png

    关于slave_io_running和slave_sql_running图片解释(来自于某视频)

    image.png

    相关报错:

    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.

    data目录中有auto.cnf文件 这个和原来的克隆过来冲突,将该文件删除重启就好了

    6.检查结果

    在主库和从库分别执行查看对应的库和表数据。

    image.png

    image.png

    在主库中执行sql操作语句

    insert into user(name) value('李四');

    在从库中进行检验

    select * from user;

    image.png

    检验成功!!!
    logs-slave-updates的参数说明

    logs-slave-updates
    参数主要在
    多主多从
    的集群架构中
    开启
    ,否则会导致各
    从实例
    无法完整同步集群的全量数据的问题。

    多主多从集群架构:

    masterA → slaveA

    ↑ ↓

    masterB → slaveB

    logs-slave-updates
    Normally, a slave does not log to its own binary log any updates that are received from a master server. This option tells the slave to log the updates performed by its SQL thread to its own binary log.

    即,正常情况下,一个

    slave
    节点是不会将其从
    master
    节点同步的数据更新操作记录至自己的二进制日志
    bin-log
    中的。

    在多主的场景下,各

    master节点
    其实又相互作为另一方的
    slave节点
    进行着数据的一致性同步操作。例如
    masterA
    会以
    slave
    的角色同步
    masterB
    上的数据,
    masterB
    也会以
    slave
    的角色同步
    masterA
    上的数据,如果没有开启
    logs-slave-updates
    参数配置,则
    masterA
    masterB
    虽然也能保证数据的一致性和完整性,但二者的
    bin-log
    中都只记录了作用在自身实例上的数据更新操作。

    今天关于《mysql主从理解和配置》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于mysql的内容请关注golang学习网公众号!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表