暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL 主从复制之<M-M>

一元殿 2019-05-07
433



衔接上文


部署MySQL主主双向主从复制< M-M>

(依据上次实验条件恢复快照再实验)



一、实验环境



 主机名          IP                系统/MySQL版本         角色
MASTER  192.168.231.129   CentOS7.4 5.5.60-MariaDB    Master
SLAVE1  192.168.231.130   CentOS7.4 5.5.60-MariaDB    slave
模式 :  C/S
端口 :  3306



二、配置主数据库服务器master

master有两种身份:<1>:192.168.231.130的主服务器

                              <2>:192.168.231.130的从服务器


修改配置文件my.cfg

[root@master ~]# vim etc/my.cnf


在[mysql]模块下插入以下命令

     server-id = 1


    log-bin=mysql-bin-master


    binlog-do-db=HA


     binlog-ignore-db=mysql


    然后重新启动mysql服务

      [root@master ~]# systemctl restart mariadb


      接下来查看master主机状态

        [root@master ~]# mysql -uroot -p8760346709 -e"show master status;"
        +-------------------------+----------+--------------+------------------+
        | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
        +-------------------------+----------+--------------+------------------+
        | mysql-bin-master.000001 | 427 | HA | mysql |
        +-------------------------+----------+--------------+------------------+


        可以看到允许复制的库“HA”与不允许复制的库“mysql ”


        接下来授权slave账号

          MariaDB [(none)]> grant replication slave on *.* to slave@'192.168.231.%' identified by '123456';

          ###记得刷新授权表###

            mysql> flush privileges; 


            最后把HA.sql文件传给slave

              [root@master ~]# rsync HA.sql 192.168.231.130:~/


              针对192.168.231.129主机配置已经修改完毕;


              三、配置数据库服务器slave


              首先修改my.cfg文件

                [root@slave ~]# vim etc/my.cnf

                同样的在[mysql]模块下插入

                  server-id = 2
                  log-bin=mysql-bin-slave
                  binlog-do-db=HA
                  binlog-ignore-db=mysql


                  重启数据库服务

                    [root@slave ~]# systemctl restart mariadb


                    先测试一下从帐号登陆是否正常?

                      [root@slave ~]# mysql -uslave -p123456 -h 192.168.231.129

                      看到以下显示

                      登陆成功,退出


                      此时slave(30)主机的身份为master(29)主机的master,对从服务器进行授权:

                        MariaDB [(none)]> grant replication slave on *.* to slave@'192.168.231.%' identified by '123456';


                        MariaDB [(none)]show master status;

                        可以看到允许复制的库“HA”与不允许复制的库“mysql ”

                        此时slave(30)主机的身份为master(29)主机的slave,对从服务器进行授权:

                          MariaDB [(none)]> stop slave;


                          MariaDB [(none)]> change master to master_host='192.168.231.129',master_user='slave',master_password='123456';


                          MariaDB [(none)]> start slave;


                          MariaDB [(none)]> show slave status\G
                          *************************** 1. row ***************************
                          Slave_IO_State: Waiting for master to send event
                          Master_Host: 192.168.231.129
                          Master_User: slave
                          Master_Port: 3306
                          Connect_Retry: 60
                          Master_Log_File: mysql-bin-master.000001
                          Read_Master_Log_Pos: 655
                          Relay_Log_File: mariadb-relay-bin.000004
                          Relay_Log_Pos: 536
                          Relay_Master_Log_File: mysql-bin-master.000001
                          Slave_IO_Running: Yes
                          Slave_SQL_Running: Yes




                          两个yes,代表成功!


                          四、返回master服务器进行配置


                          先测试一下从帐号登陆是否正常?

                            [root@master ~]# mysql -uslave -p123456 -h 192.168.231.130

                            返回结果如下


                            此时master(29)主机的身份为slave(30)主机的slave,对从服务器进行授权:

                              MariaDB [(none)]> \q


                              [root@master ~]# mysql -u root -p8760346709


                              MariaDB [(none)]> stop slave ;


                              MariaDB [(none)]> change master to master_host='192.168.231.130',master_user='slave',master_password='123456';


                              MariaDB [(none)]> start slave;


                              MariaDB [(none)]> show slave status\G
                              *************************** 1. row ***************************
                              Slave_IO_State: Waiting for master to send event
                              Master_Host: 192.168.231.130
                              Master_User: slave
                              Master_Port: 3306
                              Connect_Retry: 60
                              Master_Log_File: mysql-bin-slave.000004
                              Read_Master_Log_Pos: 2305
                              Relay_Log_File: mariadb-relay-bin.000006
                              Relay_Log_Pos: 535
                              Relay_Master_Log_File: mysql-bin-slave.000004
                              Slave_IO_Running: Yes
                              Slave_SQL_Running: Yes




                              两个yes,代表成功!


                              五、数据测试


                              master与slave的起始状态如下:

                                                                       master

                                                                       slave 



                              接下来对master数据库进行操作,过程与上一篇文章类似,不再批注

                                [root@master ~]# mysql -uroot -p8760346709


                                MariaDB [(none)]> create database HA ;


                                MariaDB [(none)]> use HA


                                MariaDB [HA]> create table T1 (id int,name varchar(20));


                                MariaDB [HA]> \q
                                Bye



                                单纯在maste服务器上创建HA库T1表,查看两个服务器变换!

                                 master


                                这时候没有对slave服务器进行任何操作! 查看状态:

                                                  slave                         

                                   slave 


                                这时候反向测试,在slave服务器上插入数据!

                                  MariaDB [HA]> insert into T1 values(1,'KaWaY1'),(2,'YuanYP');


                                   slave 


                                  这时候返回master查看!


                                  master


                                  perfect

                                  perfect

                                  perfect

                                  perfect

                                  perfect
                                  perfect



                                  测试到此结束!















                                  文章转载自一元殿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                  评论