image.png

    看一下主节点: 主节点是往data里面写数据,然后binlog存储了我们所有的SQL语句。
    从节点:从节点有两个线程,一个是I/O Thread 另一个是SQL Thread。 I/OThread 就是进行文件的读写,从主节点中将binlog的语句拷贝到relay binlog(中继日志),然后再利用SQL Thread从中继节点(relay binlog)写到data,这样就实现了主从同步。

    我们进行增删改查,看看binlog有没有存储我们的日志。

    在主节点运行命令行界面
    image.png
    这些都是我们的binlog文件
    image.png
    看一下它正在写那个文件,可以看出它正在写mysql-bin.000003
    image.png
    binlog只会存储增删改。并不会存储查,而且会存储删除表。

    同理:relay binlog也一样。

    主从同步虽然可以提高我们的性能,去牺牲了数据库的一致性的延迟。
    image.png

    当我们往主数据库里面插入一条数据,然后查询从库发现,发现没有查询到数据。

    image.png
    1会等着2插入到relay log成功后一起返回给Server,这叫半同步。

    如果到达Slave的data才叫全同步,不过没必要。

    • 从节点需要建立二进制日志文件吗?

    看情况,如果从节点需要作为其他节点的主节点时,是需要开启二进制日志文件的,这种情况叫做级联复制,如果只是作为从节点,则不需要创建二进制文件。