简单讲解下mysql主从复制的配置2019-12-10

    我想学习下主从复制,网上找了很多资源,过程很曲折,不得不说我还是挺佩服写教程专门写的让人看的不动的人的,我简单介绍下过程,中间尽量为每一步做好说明

主数据库的配置:

主数据库的配置比较简单,

        1) 在配置文件中开启二进制日志

                 #开启二进制日志 #因为主从数据库之间就是通过 二进制日志同步的

                log-bin = mysql-bin

        2.1)声明需要同步的数据库名(必写,2.1和2.2选一个配置即可)

            #只同步哪些数据库,除此之外,其他不同步 

                binlog-do-db = erio-test

                binlog-do-db = erio

        2.2)也可以声明哪些数据库不需要同步(一般建议用2.1的方法,只同步自己需要同步的即可)

            # 不同步哪些数据库 

            # binlog-ignore-db = mysql 

            # binlog-ignore-db = test 

            # binlog-ignore-db = information_schema 

        3)设置server-id (每个mysql 程序的配置文件里server-id 必须不一样,也就是主库 和从库的server-id不能相同

            server-id = 1 #我把主库设置为 从库设置为 非1 的数字即可


从库的配置:

    在配置从库之前,如果主库有数据,需要先把主库的所有数据迁移到从库,需要知道的是,开启主从复制之后,主数据库的每一个操作都会同步到从数据库,但是不会自动同步主数据库之前已经存在的数据。简单梳理下就是 :主从复制开启之后,仅仅能保证两个数据库之后的操作是一样的。

所以将主数据库的数据和表结构迁移到从数据库是前提,一般可以利用数据库管理软件把表结构和数据迁移到从数据库,如果是Datagrip 的话就可以用如下方式,将数据 做成sql文本,在从库上运行即可,(在这之前,你需要将表先创建好),如果你爹数据库很可能在你备份数据之前有人访问,为了保证数据的一致性,最好先将数据库锁住,不允许更改


简单讲解下mysql主从复制的配置2019-12-10_第1张图片
datagrip软件备份数据

当主从数据库的数据保持一直后开始配置从数据库

    主数据库   (注意,是主数据库下)下:

        1)创建 一个用户(用于从库链接主库)

           #修改成 WITH mysql_native_password身份验证插件

            #'NAME' 用户名

            #'%' 代表所有外网地址(可以设置成ip地址形式 也可以是localhost)

            #'PASSWORD' 用户密码

        CREATE USER 'NAME'@'%' IDENTIFIED WITH mysql_native_passwordBY  'PASSWORD';

    2)给予复制主数据库的授权

            # REPLICATION SLAVE 指 从数据库 复制主数据库的权限

            # *.* 所有库所有表 (可以具体指定 如 database.table)

            GRANT REPLICATION SLAVE ON *.* TO 'NAME'@'%';#分配权限

            flush privileges; #刷新权限

        3)运行show master status ;会得到二进制日志文件名 和 位置(Binlog_Do_DB是配置文件中配置需要同步的数据库,Binlog_Do_DB是不需要同步的数据库,我没有配置),记录下 file 字段 和 position字段

            show master status ;


 show master status ;运行结果

          4) 在从库下:

            # 从库链接主库(各个字段 就不必解释了)

         #host   ip地址

        # user  用户名

        # password  密码

        #file    主库查询到的 file

        #pos 主库查询到的position

            CHANGE MASTER TO

                MASTER_HOST ='0.0.0.0',

                MASTER_USER ='name',

                MASTER_PASSWORD ='961011',        

                MASTER_LOG_FILE ='mysql-bin.000001',

                MASTER_LOG_POS =155;

5)   启动同步进程

        # 启动同步进程

        start slave;

   至此,如果于一切正常,你修改主库中的数据,从库会响应改变


额外说明:

    1 你可以查看 从库状态(需要关注下图两个状态都为Yes表示成功链接主库)

        show slave status;


简单讲解下mysql主从复制的配置2019-12-10_第2张图片
show slave status;


2 你可以停止同步

      #停止同步

          stop slave;

3 你可以在停止同步后删除同步信息

        #删除所有同步信息

    reset slave all;


4 你可以在主库中查看从库

        show processlist;#查看从库

5 你可以主库中重制主库 

        reset master ;

    

你可能感兴趣的:(简单讲解下mysql主从复制的配置2019-12-10)