mysql双主互备设置详细记录

mysql双主互备设置详细记录
1.环境详细信息:
    1.1 服务器A
            CentOS realse 6.8 final
            mysql,5.6.34
            192.168.31.133;
    1.2 服务器B,
            CentOS realse 6.8 final
            mysql,5.6.34
            192.168.31.132
2.说明
    2.1 对于一个mysql服务器,一般有两个线程来负责复制和被复制,当开启复制之后:
        2.1.1 作为主服务器Master,会把自己的每一次改动都记录到二进制日志binarylog中。(从服务器会负责来读取这个log, 然后在自己那里再执行一遍。)
        2.1.2 作为从服务器Slave,会用master上的账号登陆到master上,读取master的Binarylog,写入到自己的中继日志 relaylog,然后自己的sql线程会负责读取这个中继日志,并执行一遍。到这里主服务器上的更改就同步到从服务器上了。
3.设置详细步骤:
    3.1 在服务器A上创建专门用于备份的账户,在mysql中执行:
        grant replication slave on *.* to 'root_save'@'192.168.31.132' identified by 'root_save';
        其中192.168.31.132为B服务器的IP地址,前面的root_save为用户名,后面的root_save为密码
    3.2 开启主服务器(A服务器)的binarylog(配置my.cnf文件中的相关参数)
        #about master-slave
        #开启二进制日志
        log-bin=mysql-bin
        #设置二进制文件模式
        binlog_format=mixed
        #服务的ID,主从服务需要设置不同的值
        server-id=1

        #设置是否只读
        read-only=0
        #设置需要关注的数据库
        #binlog-do-db=i_test
        #设置需要忽略的数据库
        #which should be ignored
        binlog-ignore-db=mysql
        binlog-ignore-db=information_schema
        binlog-ignore-db=performance_schema
        #how many db servers
        auto-increment-increment = 10
        # 设置增长的初始值
        auto-increment-offset=2
        #end master-slave
    3.3 获取主服务器(A服务器)状态,和同步初态。
        3.3.1 先锁定需要同步的数据库,比如我们测试的i_test,在mysql中执行:
        use i_test;
        FLUSH TABLES WITH READ LOCK;
        3.3.2 导出数据库中的数据,在命令行中执行:
        mysqldump --master-data -u root -p i_test > i_test.sql
        3.3.3 查看A服务器的binary日志位置,在mysql中执行:
        show master status\G;
        执行结果如下:
        mysql> show master status\G;
        *************************** 1. row ***************************
                     File: mysql-bin.000007 #该参数在启动同步设置MASTER_LOG_FILE参数时使用
                 Position: 2879 #该参数在启动同步设置MASTER_LOG_POS参数时使用
             Binlog_Do_DB:
         Binlog_Ignore_DB: mysql,information_schema,performance_schema
        Executed_Gtid_Set:
        1 row in set (0.00 sec)

        ERROR:
        No query specified

        3.3.4 解锁数据库,在mysql中依次执行:
        use i_test;
        unlock tables;
    3.4 设置从服务器(B服务器)需要复制的数据库(配置my.cnf文件中的相关参数)
        #about master to slave
        log-bin=mysql-bin
        binlog-format=mixed
        #服务的ID,主从服务需要设置不同的值
        server-id=2

        #replicate-do-db=i_test
        #可以指定需要复制的数据库
        replicate-ignore-db=mysql
        #复制时需要排除的数据库
        replicate-ignore-db=information_schema
        replicate-ignore-db=performance_schema
        #中继日志的名字
        relay_log=mysqld-relay-bin
        #中继日志执行之后,这些变化是否需要计入自己的binarylog。 当你的B服务器需要作为另外一个服务器的主服务器的时候需要打开。  就是双主互相备份,或者多主循环备份。
        log-slave-updates=ON
        #about master to slave
    3.5 配置my.cnf文件之后重启mysql服务
    3.6 导入初态,开始同步
        在从服务器(B服务器)创建数据库,i_test,在mysql中执行:
        create database i_test;
        把刚刚从主服务器(A服务器上)导出的i_test.sql导入到从服务器(B服务器)的i_test数据库中,在命令行执行:
        mysql -u root -p i_test<i_test.sql
    3.7 开启同步
        在从服务器(B服务器)上执行
        CHANGE MASTER TO
        MASTER_HOST='192.***.***.***',#(A服务器IP)
        MASTER_USER='repl_user',#(A服务器创建的B服务器访问账号)
        MASTER_PASSWORD='hj3****',#(A服务器创建的B服务器访问账号的密码)
        MASTER_LOG_FILE='mysql-bin.000004',#(A服务器的当前二进制日志文件的名称)
        MASTER_LOG_POS=7145;#(A服务器的当前二进制日志文件的位置)
    3.8 重启从服务器(B服务器)的mysql服务
    3.9 查看从服务器(B服务器)的slave线程情况
        show slave status\G;
        只有在
        Slave_IO_Running: Yes
        Slave_SQL_Running: Yes
        才说明配置成功,其中任意一个为NO都表示配置不成功,应当查看错误日志,进行查看。
    3.10 在主服务器(A服务器)上的i_test数据库中插入一条记录,在从服务器(B服务器)上进行查看,就能够正常的查看到了。
    3.11 以上完成A-B的复制,即简单的主从配置,
        现在开始配置B-A的复制,即:把B当成主服务器,A当成从服务器,从而实现双主热备.
    3.12 在B中创建用于复制的账户,类似于3.1,在mysql中执行:
        grant replication slave on *.* to 'root_save'@'192.168.31.133' identified by 'root_save';
    3.13 开启主服务器(B服务器)的binarylog,类似于3.2
        read-only=0
        binlog-ignore-db=mysql
        binlog-ignore-db=information_schema
        binlog-ignore-db=performance_schema
        auto-increment-increment = 10
        auto-increment-offset=6
    3.14 查看主服务器(B服务器)的master日志状态,类似于3.3.3
        show master status\G;
    3.15 开启从服务器(A服务器)的中继日志,类似于3.4
        #replicate-do-db=i_test
        replicate-ignore-db=mysql
        replicate-ignore-db=information_schema
        replicate-ignore-db=performance_schema
        relay_log=mysqld-relay-bin
        log-slave-updates = ON
    3.16 启动同步,在从服务器(A服务器)的mysql下执行:
        change master to
        master_host='192.168.31.132',
        master_user='root_save',
        master_password='root_save',
        master_log_file='mysql-bin.000006',
        master_log_pos=120;
    3.17 查看从服务器(A服务器)的slave状态是否正常
        show slave status\G;
        只有在
        Slave_IO_Running: Yes
        Slave_SQL_Running: Yes
        才说明配置成功,其中任意一个为NO都表示配置不成功,应当查看错误日志,进行查看。
    3.18 完成以上操作之后,mysql双主热备就实现了。
4.配置过程中的注意事项:
    4.1 注意参数的拼写,下划线和中划线的书写
    4.2 注意查看错误日志
    4.3 注意设置的账号和密码是否正确
    4.4 注意对应端口是否开启以及防火墙的状态
    4.5 注意在开启从服务器的同步时,应当是即时查看主服务器的master状态
    4.6 注意设置mysql服务的开机启动

转载于:https://my.oschina.net/u/2615043/blog/788574

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值