MySQL——主从复制

一、主从复制的基本概念

    指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中。对于多级复制,数据库服务器即可充当主机,也可充当从机。MySQL主从复制的基础是主服务器对数据库修改记录二进制日志,从服务器通过主服务器的二进制日志自动执行更新。

二、主从复制的原理

    分为三步:

    1.master将改变记录到二进制日志(binary log),这些记录过程叫做二进制日志事件,binary log events

    2.slave将master的binary log events拷贝到它的中继日志(relay log)

    3.slave重做中继日志中的事件,将改变应用到自己的数据库中,MySQL复制是异步的且串行化的    

原理图

三、复制的基本原则

    1.每个slave只能有一个master

    2.每个slave只能有一个唯一的服务器ID

    3.每个master可以有多个slave

四、一主一从常见配置

    1.mysql版本一致且后台以服务运行

    2.主从都配置在mysqld节点下,都是小写

        2.1 主机修改my.ini配置文件

            2.1.1 主服务器唯一ID(必须)

                server-id=1

            2.1.2 启用二进制日志(必须)

                log-bin=自己本地的路径/mysqlbin

                示例:log-biin=D:/mysql-5.7.28-winx64/data/mysqlbin

            2.1.3 启用错误日志(可选)

                log-err=自己本地的路径/mysqlerr

            2.1.4 根目录(可选)

                basedir="自己本地路径"

                示例:"D:/mysql-5.7.28-winx64/"

            2.1.5 临时目录(可选)

                tmpdir="自己本地路径"

            2.1.6 数据目录(可选)

                datadir="自己本地路径/Data/"

            2.1.7 read-only=0

                设置主机,允许读写操作

            2.1.8 设置不需要复制的数据库和需要复制的数据库

                binlog-ignore-db=主机数据库名

                binlog-do-db=主机数据库名

        2.2 从机修改my.ini配置文件

            2.2.1 修改从机的服务器ID(必须)

                保证server-id唯一

            2.2.2 启用二进制日志(可选)

    3.修改过配置文件后,需要重启主机和从机的后台mysql服务

    4.主机和从机都关闭防火墙

    5.在主机上建立账户并授权slave

        5.1 grant REPLICATION on *.* to 'zhangsan'@'从机ip' identified by ‘666’;

        5.2 flush privileges;

        5.3 查询master的状态(记录下File和Position的值)——表示从哪个文件的哪个位置开始同步

            show master status;

        5.4 不要操作主机保持主机此时的状态

    6.在从机上配置需要复制的主机

        6,1 change master to master_host='主机ip',master_user='zhangsan',master_password='666',master_log_file='主机file值',master_log_pos=主机Position值;

        6.2 start slave;——启动从机

        6.3 show slave status\G

            检查到Slave_IO_Running和Slave_SQL_Running两个参数都为Yes,则主从配置成功

    7.关闭主从复制

        stop slave;

        注意:每次主从复制重启后都需要先show master status记录下File和Position的值,根据新值再重新配置一遍从机

       

你可能感兴趣的:(MySQL——主从复制)