MySQL建立主-从服务器双机热备配置

一、准备环境

  1.主服务器A(192.168.0.176),从服务器B(192.168.0.13)。

  2.两台服务器上都部署了mysql数据库。(两台服务器上的数据库版本必须是一致的)

  3.再两台服务器上分别创建rb-test数据库,并创建数据表user。

二、主服务器A双机热备配置步骤

  1、创建同步用户

  进入mysql操作界面,在主服务器A上为从服务器建立一个连接帐户,该帐户必须授予REPLICATION SLAVE权限。因为从mysql版本3.2以后就可以通过REPLICATION对其进行双机热备的功能操作。

mysql> grant replication slave on *.* to ‘zhutong‘@‘192.168.0.13‘ identified by ‘zhutong#123‘;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

  2、创建好同步连接帐户后,我们可以通过在从服务器B上用zhutong帐户对主服务器A(Master)数据库进行访问下,看下是否能连接成功。

[[email protected] ~]# mysql -h192.168.0.176 -uzhutong -pzhutong#123
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 5.7.21 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql> 

  3、修改主服务器A数据库的配置 

vi /etc/my.cnf
#加上
server-id = 1
log-bin=mysql-bin
binlog-do-db = rb
binlog-ignore-db = mysql

  4、重启mysql数据库

service restart mysql

  5、查看主服务器的状态

[[email protected]0003 use-tools]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 765
Server version: 5.7.21-log MySQL Community Server (GPL)
mysql> flush table with read lock;
Query OK, 0 rows affected (0.00 sec)
mysql> show master status\G;
*************************** 1. row ***************************
             File: mysql-bin.000006
         Position: 154
     Binlog_Do_DB: rb
 Binlog_Ignore_DB: mysql
Executed_Gtid_Set:
1 row in set (0.00 sec)

ERROR:
No query specified

  注意看里面的参数,特别前面两个File和Position,在从服务器(Slave)配置主从关系会有用到的。

  6、锁表

  注:这里使用了锁表,目的是为了产生环境中不让进新的数据,好让从服务器定位同步位置,初次同步完成后,记得解锁。 

unlock tables;

三、从服务器B双机热备配置步骤

  1、修改配置文件

vi /etc/my.cnf
#添加如下内容
[mysqld]
server-id = 2
log-bin=mysql-bin
replicate-do-db = rb
replicate-ignore-db = mysql,information_schema,performance_schema

  2、重启数据库

service restart mysql

  3.用change mster 语句指定同步位置

  这步是最关键的一步了,在进入mysql操作界面后,输入如下指令:

[[email protected]0002 DB]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.21-log MySQL Community Server (GPL)

mysql> stop slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> change master to master_host=‘192.168.0.176‘,master_user=‘zhutong‘,master_password=‘zhutong#123‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=154;
Query OK, 0 rows affected, 2 warnings (0.02 sec)
#成功后,则可以开启slave线程了。
mysql> start slave;Query OK, 0 rows affected (0.00 sec)

  4、查看从服务器(Slave)状态

mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.0.176
                  Master_User: zhutong
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000006
          Read_Master_Log_Pos: 154
               Relay_Log_File: ecs-d68e-0002-relay-bin.000007
                Relay_Log_Pos: 367
        Relay_Master_Log_File: mysql-bin.000006
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: rb
          Replicate_Ignore_DB: mysql,information_schema,performance_schema
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 154
              Relay_Log_Space: 795
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 1
                  Master_UUID: 31e0c365-7e73-11e8-b6ee-fa163ee46a49
             Master_Info_File: /home/zhutong/DB/datas/mysql/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind:
      Last_IO_Error_Timestamp:
     Last_SQL_Error_Timestamp:
               Master_SSL_Crl:
           Master_SSL_Crlpath:
           Retrieved_Gtid_Set:
            Executed_Gtid_Set:
                Auto_Position: 0
         Replicate_Rewrite_DB:
                 Channel_Name:
           Master_TLS_Version:
1 row in set (0.00 sec)

ERROR:
No query specified

  查看下面两项值均为Yes,即表示设置从服务器成功。
  Slave_IO_Running: Yes
  Slave_SQL_Running: Yes

四、测试同步

  1、查看主从数据库中rb数据库user表的数据(我们rb数据库中只有一张表);

  主-A  

mysql> use rb;
Database changed
mysql> show tables;
+--------------+
| Tables_in_rb |
+--------------+
| user         |
+--------------+
1 row in set (0.01 sec)
mysql> select * from user;
Empty set (0.00 sec)
mysql> 

  从-B 

mysql> use rb;
Database changed
mysql> show tables;
+--------------+
| Tables_in_rb |
+--------------+
| user         |
+--------------+
1 row in set (0.00 sec)
mysql> select * from user;
Empty set (0.00 sec)

  现在可以在Master服务器中插入数据看下是否能同步。

  2、在主服务器上数据库写数据,看能不能同步。

mysql> use rb;
Database changed
mysql> insert into user values(‘zbbiex‘,‘15352453201‘);
ERROR 1136 (21S01): Column count doesn‘t match value count at row 1
mysql> insert into user values(1,‘zbbiex‘,‘15352453201‘);
Query OK, 1 row affected (0.00 sec)

mysql> select * from user;
+----+--------+-------------+
| id | name   | mobile      |
+----+--------+-------------+
|  1 | zbbiex | 15352453201 |
+----+--------+-------------+
1 row in set (0.00 sec)

mysql> 

  3、在从服务器B上查看是不是数据已经同步过去了

mysql> use rb;
Database changed
mysql> select * from user;
+----+--------+-------------+
| id | name   | mobile      |
+----+--------+-------------+
|  1 | zbbiex | 15352453201 |
+----+--------+-------------+
1 row in set (0.00 sec)

mysql> 

  可以看到数据已经同步过去,完全没问题;

原文地址:https://www.cnblogs.com/abbiex/p/9244665.html

时间: 2024-10-10 21:48:08

MySQL建立主-从服务器双机热备配置的相关文章

LVS-DR+Keepalived网站服务器双机热备配置

keepalived是一个类似于layer3, 4 & 7交换机制的软件,也就是我们平时说的第3层.第4层和第7层交换.Keepalived是自动完成,不需人工干涉.调度服务器:需要在LVS的基础上面做.参考上两节:负载均衡群集之一LVS-DR:http://blog.51cto.com/13572519/2084197负载均衡群集之-LVS-NAT:http://blog.51cto.com/13572519/2084181 一块网卡:Vmnet1:192.168.80.100主与从调度器上都

MySQL主从复制实现数据库服务器双机热备详细讲解

1.mysq主从复制简介 1.1.复制介绍 MySQL支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新.如果你想要设置链式复制服务器,从服务器本身也可以充当主服务器.请注意当你进行复制时,所

CentOS系统MySQL双机热备配置

1  概述 在集成项目中需要应对不同环境下的安装配置,主流操作系统大致可以分为三种:Linux.Windows以及UNIX.其中Linux备受青睐的主要原因有两个: 首先,Linux作为自由软件有两个特点:一是它免费提供源码,二是爱好者可以按照自己的需要自由修改.复制和发布程序的源码,并公布在Internet上.这就吸引了世界各地的操作系统高手为Linux编写各种各样的驱动程序和应用软件,使得Linux成为一种不仅只是一个内核,而且包括系统管理工具.完整的开发环境和开发工具.应用软件在内,用户很

MHA大杀器——mysql主、从双击热备配置安装解析

MHA的主要作用: 在mysql的主从复制中,当master崩溃了,利用mha实现backup顶替崩溃的master自动切换为master继续工作,从而实现高可用. 下面介绍本次实验的环境: MHA分为manager管理节点和node节点,一般来讲最少是三台服务器,两台node节点,一台manager节点,但本次环境限制,只能使用两台,所以把manager也装在一台node节点上. 两台服务器,两个网口: IP: 10.2.16.253     10.0.0.1  node1 10.2.16.2

音视频服务器双机热备解决方案

AnyChat平台提供了服务器双机热备解决方案,可以满足对系统有要求较高的客户需求,如政府.电信运营商以及部队等. 一.基本原理 1.AnyChat服务器有两种工作模式,分别为:主服务器模式(Master Server).从服务器模式(Slave Server). 2.从服务器启动之后,需要与主服务器建立通信连接,等待主服务器的激活,从服务器被激活之前,不能对外提供服务. 3.当从服务器被激活,且主服务器宕机之后,从服务器将会立即开始服务,接受客户端连接.从服务器被激活之后,可以连续工作30天,

MySQL双机热备配置过程——任征

准备工作 1. 把需要同步的数据库实例从主数据库备份出来,然后手动导入从数据库,以保证数据库同步的时候主从数据库是一致的. 2. 配置主数据库所在操作系统的防火墙,开放数据库访问端口,默认端口3306.准备服务器 由于Mysql不同版本之间的(二进制日志)binlog格式可能会不太一样,因此最好的搭配组合是主(Master)服务器的Mysql版本和从(Slave)服务器版本相同或者更低,主服务器的版本肯定不能高于从服务器版本.设置方法: a. 范例环境: (1).操作系统: windows 7

华为防火墙实现双机热备配置详解

一提到防火墙,一般都会想到企业的边界设备,是内网用户与互联网的必经之路.防火墙承载了非常多的功能,比如:安全规则.IPS.文件类型过滤.内容过滤.应用层过滤等.也正是因为防火墙如此的重要,如果防火墙一旦出现问题,所有对外通信的服务都将中断,所以企业中首先要考虑的就是防火墙的优化及高可用性. 博文大纲:一.双机热备工作原理二.VRRP协议(1)VRRP协议概述(2)VRRP的角色(3)VRRP的状态机(4)VRRP的工作原理三.VGMP协议(1)VGMP的工作原理(2)VGMP的报文封装(3)双机

Centos7系统安装mysql双机热备步骤

首先,设置系统语言格式,用系统自带的yum命令安装.升级所需的程序库 #LANG=C yuminstall gcc gcc-c++ libtool libtool-libs kernel kernel-devel libjpeglibjpeg-devel libpng libpng-devel libtiff libtiff-devel gettext gettext-devellibxml2 libxml2-devel zlib-devel net-snmp file glib2 glib2-

MySQL数据库配置主从服务器实现双机热备

转自:http://www.cnblogs.com/cchun/p/3712637.html 一.安装MySQL 说明:在两台MySQL服务器192.168.21.169和192.168.21.168上分别进行如下操作,安装MySQL 5.5.22  二.配置MySQL主服务器(192.168.21.169) mysql -uroot -p #进入MySQL控制台 create database osyunweidb; #建立数据库osyunweidb insert into mysql.use