`

Mysql主从

 
阅读更多

       在日常中,一个公司的的大量数据都会存在数据库里。当然,一台数据库没法保证数据的安全性和可靠性,如果哪天这台服务器出现故障,没法立即解决。这就会对公司造成一定的损失,所以今天我们的实验就会做到一个mysql双击热备,不管哪台mysql服务器是写入修改还是添加任何数据,另外一台服务器都会把数据同步过来。

 一、环境要求:

两台CentOS 6.5 系统服务器
服务器A:192.168.1.10
服务器B:192.168.1.20

 二、服务器A配置

[root@loaclhost ~]#yum -y install mysql mysql-server mysql-devel
[root@loaclhost ~]#service mysqld start            
[root@loaclhost ~]#chkconfig mysqld on 
[root@loaclhost ~]#ckconfig --add mysqld 
[root@loaclhost ~]#mysqladmin -u root password 123456
[root@loaclhost ~]#mysql -u root -p123456      // 登陆数据库
mysql>grant replication slave,file on *.* to 'B'@'192.168.1.20' identified by '123456';   //授权B
mysql>flush privileges;     // 刷新权限
mysql>exit
[root@loaclhost ~]#service mysqld stop  //停止数据库
[root@loaclhost ~]#vim /etc/my.cnf
#修改添加My.cnf配置文件如下:
log-bin=mysql-bin
server-id       = 1     //主从的ID不能一样
binlog-do-db=test      //我这儿是对test数据库进入热备的
binlog-ignore-db=mysql
replicate-do-db=test
replicate-ignore-db=mysql
log-slave-updates=true
slave-skip-errors=all 
skip-name-resolve
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1
[root@loaclhost ~]#service mysqld start
[root@loaclhost ~]#mysql -u root -p123456
mysql>flush tables with read lock;    //对表进行加锁
mysql>show master status; 
#显示以下内容:A
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      106 | test         | mysql            |
+------------------+----------+--------------+------------------+
mysql>change master to      //以下内容是先show master status;查看到服务器B的
-> master_host='192.168.1.20',    
-> master_user='B',
-> master_password='123456',
->master_log_file='mysql-bin.000001',
->master_log_pos=106;
mysql>start slave;      //启动slave
mysql>show slave status\G;    //查看IO进程和 SQL进程是否都开启
#显示以下内容IO SQL进程都必需是YES则成功
         Relay_Log_File: mysqld-relay-bin.000002
                Relay_Log_Pos: 251
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: test
          Replicate_Ignore_DB: mysql


 三、服务器B配置

[root@loaclhost ~]#yum -y install mysql mysql-server mysql-devel
[root@loaclhost ~]#service mysqld start            
[root@loaclhost ~]#chkconfig mysqld on 
[root@loaclhost ~]#ckconfig --add mysqld 
[root@loaclhost ~]#mysqladmin -u root password 123456
[root@loaclhost ~]#mysql -u root -p123456      // 登陆数据库
mysql>grant replication slave,file on *.* to 'A'@'192.168.1.10' identified by '123456';   //授权A
mysql>flush privileges;     // 刷新权限
mysql>exit
[root@loaclhost ~]#service mysqld stop  //停止数据库
[root@loaclhost ~]#vim /etc/my.cnf
#修改添加My.cnf配置文件如下:
log-bin=mysql-bin
server-id       = 2
binlog-do-db=test      //我这儿是对test数据库进入热备的
binlog-ignore-db=mysql
replicate-do-db=test
replicate-ignore-db=mysql
log-slave-updates=true
slave-skip-errors=all 
skip-name-resolve
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1
[root@loaclhost ~]#service mysqld start
[root@loaclhost ~]#mysql -u root -p123456
mysql>flush tables with read lock;    //对表进行加锁
mysql>show master status; 
#显示以下内容:A
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      106 | test         | mysql            |
+------------------+----------+--------------+------------------+
mysql>change master to      //以下内容是先show master status;查看到服务器A的
-> master_host='192.168.1.10',    
-> master_user='B',
-> master_password='123456',
->master_log_file='mysql-bin.000001',
->master_log_pos=106;
mysql>start slave;      //启动slave
mysql>show slave status\G;    //查看IO进程和 SQL进程是否都开启
#显示以下内容IO SQL进程都必需是YES则成功
         Relay_Log_File: mysqld-relay-bin.000002
                Relay_Log_Pos: 251
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: test
          Replicate_Ignore_DB: mysql

 

四、测试A服务器
释放掉各自的锁,然后进行插数据测试
mysql>unlock tables;
mysql>use test  #(切换到test数据库)
mysql>create table t11_replicas
-> (id int not null auto_increment primary key,
-> str varchar(255) not null) engine myisam;

mysql>insert into t11_replicas(str) values
-> ('This is a master to master test table');

mysql>show tables;
现在我们就可以查看到一个名为t11_replicas 表,我们切换到服务器B也用查看命令一定也可以查看到这个表。
 五、服务器B测试
释放掉各自的锁,然后进行插数据测试
mysql>unlock tables;
mysql>use test  #(切换到test数据库)
mysql>create table t22_replicas
-> (id int not null auto_increment primary key,
-> str varchar(255) not null) engine myisam;

mysql>insert into t11_replicas(str) values
-> ('This is a master to master test table');

mysql>show tables;
现在我们就可以查看到一个名为t22_replicas 表,我们切换到服务器A也用查看命令一定也可以查看到这个表。
 
分享到:
评论

相关推荐

    《深入理解MySQL主从原理32讲》推荐篇

    作者:高鹏(网名八怪),《深入理解MySQL主从原理32讲》系列文的作者。2008年开始至今一直从事Oracle/MySQL相关工作,现任易极付高级DBA,Oracle Ocm。有丰富的数据库性能调优,故障诊断经验,并且对MySQL源码有...

    使用keepalived实现对mysql主从复制的主备自动切换.docx

    "使用keepalived实现对mysql主从复制的主备自动切换" 本文主要讲解如何使用keepalived实现对mysql主从复制的主备自动切换。keepalived是一款高可用性解决方案,可以实现虚拟IP的管理和服务监控,在mysql主从复制...

    mysql主从库配置

    ### MySQL 主从库配置详解 #### 一、MySQL 安装与环境变量设置 在进行 MySQL 主从库配置之前,我们需要确保已经正确安装了 MySQL,并设置了相应的环境变量。以下是具体的步骤: 1. **下载 MySQL 免安装版**: - ...

    MySQL主从安装部署

    ### MySQL主从安装部署知识点详解 #### 一、MySQL主从安装部署概述 MySQL 主从复制是一种常见的数据备份和负载均衡技术,在多个服务器之间同步数据。通过设置一个或多个从服务器来复制主服务器上的数据变更操作,...

    MySQL主从复制搭建从入门到掌握

    ### MySQL主从复制搭建知识点详解 #### 一、MySQL主从复制概述 MySQL主从复制是一种数据同步机制,它能够将一个MySQL服务器(主服务器)的数据自动同步到一个或多个MySQL服务器(从服务器)。这种机制不仅可以提高...

    MySQL主从复制与读写分离.docx

    MySQL 主从复制与读写分离 MySQL 主从复制是指将一个 MySQL 服务器的数据实时同步到另一个 MySQL 服务器中,以实现数据的高可用性和读写分离。下面是 MySQL 主从复制与读写分离的详细知识点: MySQL 主从复制 ...

    mysql主从数据库的优势

    MySQL主从数据库的优势详解 MySQL主从服务器配置是数据库领域中一种常见的高可用性和高性能解决方案。这一机制允许数据从一个主服务器(Master)复制到一个或多个从服务器(Slave),以此来实现数据冗余、负载均衡...

    MySQL主从同步配置过程.docx

    MySQL 主从同步配置过程 一、 MySQL 主从同步配置概述 MySQL 主从同步配置是指将 MySQL 数据库的数据从一台服务器(主服务器)同步到另一台服务器(从服务器)的过程。这种配置可以实现数据的高可用性和灾难恢复,...

    线上经验谈MySQL主从切换的一般步骤

    MySQL主从切换是数据库高可用性架构中的常见操作,它涉及到数据复制、故障转移和负载均衡等关键概念。本文将详细解析这一过程,帮助你理解并掌握线上环境中MySQL主从切换的一般步骤。 首先,我们需要了解MySQL主从...

    mysql主从互备实战

    ### MySQL主从互备实战详解 #### 一、前言 在现代的互联网应用中,数据库作为关键的数据存储层,其稳定性和可用性至关重要。为了提高数据库系统的可靠性和响应速度,许多企业会采用MySQL主从互备(Master-Slave ...

    mysql主从数据库配置

    MySQL主从数据库配置是数据库高可用性和负载均衡的重要实践,它允许数据从一个主数据库(Master)异步复制到一个或多个从数据库(Slave)。这种配置对于处理大规模数据操作和保证数据一致性至关重要。 主从复制的...

    MySQL主从复制部署实施文档

    ### MySQL主从复制部署实施知识点 #### 一、MySQL主从复制概述 MySQL主从复制是一种数据复制技术,它能够实现在多个服务器之间复制数据。通常包括一个主服务器(Master)和一个或多个从服务器(Slave)。在主从复制...

    MySQL 主从复制模式全面实践

    MySQL主从复制模式是数据库领域内一种重要的数据同步机制,它能够让一台主数据库服务器(master)的数据实时复制到一个或多个从数据库服务器(slave)上。这种机制在数据库的高可用性、数据备份、读写分离以及负载...

    MySQL主从配置详解.pdf

    配置MySQL主从复制可以带来许多好处,如分散查询负载、提升查询效率、数据备份和读写分离等,但同时也需要注意配置过程中的细节和可能出现的问题。掌握MySQL主从配置的知识对于维护高效、稳定和安全的数据库环境至关...

    nagios监控mysql主从

    ### Nagios监控MySQL主从知识点解析 #### 一、Nagios与MySQL主从监控概述 Nagios是一款开源的网络监控系统,可以用来监控主机、网络服务等资源的状态,并在出现问题时通过邮件等方式发送告警通知。对于企业级应用...

Global site tag (gtag.js) - Google Analytics