`

mysql搭建主从数据库

阅读更多

在线上应用运行的过程中,可能会由于某些原因mysql数据库挂掉了,造成数据丢失或影响线上应用的使用。这时候定时对数据库备份就显得尤为重要。这里主要是介绍主从数据库配置,当主库不能正常使用时,可迅速切换到备库,以保证正常运行。

 

服务器环境:

   主服务器:192.168.200.24     操作系统:centos    数据库版本:5.0.95    master

   从服务器:192.168.200.247     操作系统:centos    数据库版本:5.1.73    slave

   配置的话最好数据库版本一致。  查看mysql版本:mysql  -V

 

步骤:

     1.创建同步账户,让两个mysql可以可以互相访问

   在24上进入mysql执行命令: GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.200.247' IDENTIFIED BY '123456' WITH GRANT   OPTION; (通过账号root密码123456连接247上的库,权限为所有)

   在247上进入mysql执行命令:GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.200.24' IDENTIFIED BY '123456' WITH GRANT  OPTION;

     执行 flush privileges;(可使以上执行的grant立即生效)

    创建完后,就可以正常通过mysql命令连接到对应服务器上的mysql库了。如果连接不上,检查下防火墙是否已关闭。

     2.修改两台mysql的配置文件

    24上在[mysqld]中添加

            log-bin=mysql-bin

            server-id=1    必须指定,且不能重复

            binlog-ignore-db=mysql    不需要同步的库

            binlog-ignore-db=information_schema  不需要同步的库

            replicate-do-db=meizi4      需要同步的库,若有多个可写多行

 

    247上在[mysqld]中添加

             log_bin =  mysql-bin

             server-id = 2      必须指定,且不能重复

 

             replicate-do-db =meizi4   需要同步的库,若有多个可写多行

 

    配置完后要重新启动两个mysql数据库

    启动方法:service mysqld start   或mysqld_safe &

    停止mysql:service mysqld stop

    若mysql启动报错,可查看mysql日志,错误日志可在my.cnf中配置log-error,没有配置则在默认安装目录的hostname.err中

 

    3.得到master的状态信息:show master status;  记录下File和Position 的值,4将会用到。File=mysql-bin.000002  Position =98

 

   4.登陆247的mysql,执行命令:change master to master_host='192.168.200.24',master_user='root',master_password='123456',master_port=3307,master_log_file='mysql-bin.000002  ',master_log_pos=98;

 

   5.查看数据库状态

     show slave status\G;

    察看结果字段Slave_IO_State,一般应该为"Waiting for master to send event";此时Slave_IO_Running和Slave_SQL_Running应该为true,

如果不是,在slave端执行: stop slave; start slave; 重启复制进程。

重启slave的时候出现报错:The server is not configured as slave; fix in config file or with CHANGE MASTER TO

原因:slave的server-id配置有问题 查看 show variables like 'ser%'; 结果显示为0.明明配置的2  显然之前配置的未生效。server-id需配置到[mysqld]下

Replicate_Do_DB为要复制的数据库,和my.cnf配置的相同。

120326 11:10:23 [ERROR] /usr/local/mysql//libexec/mysqld: File '/data/mysqldata/3306/binlog/mysql-relay-bin.000002' not found (Errcode: 2)  我在执行show slave status\G时出现以上错误,执行了reset slave;就好了
   至此数据库主从关系就搭建好了。在主库24上对数据库进行操作(建表、插入数据、更新数据、删除)都会同步到247的数据库中,但是对247的修改则不会同步过去.
   master故障处理:
    当master出现故障时,可以迅速将应用连接到slave上,这时候应用就连的我们的备库上了,首先在slave端执行:show master status。保存File和Position两个值,切记一定要保存,这两个值可用于由slave恢复master.如:File=mysql-bin.000006   Position=4434
      由于在master故障期间,更新的新数据都到slave里了,我们需要把更新的数据同步到master中。同步步骤:
       1.在master端执行:CHANGE MASTER to MASTER_HOST='192.168.200.247', MASTER_PORT=3306, MASTER_USER='root', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000006', MASTER_LOG_POS=4434;
其中 MASTER_HOST 为slave的ip, MASTER_LOG_FILE, MASTER_LOG_POS为切换到slave时记录下的File和Position值。
       2.在master执行:start slave;
       3.待master内容基本恢复以后(在master执行:show slave status \G; Slave_IO_State显示为Waiting for master to send event)将应用切换回master。
       4.待系统稳定后master执行:stop slave停止slave。
执行完以上4步后master中的数据也恢复了,以后在master中更新数据,仍会同步至slave.
 
 
 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    如何使用Docker搭建MySQL主从数据库.zip

    本压缩文件包含两个pdf文件,详细讲解了如何在Linux系统中安装Docker、如何在Docker中安装和配置MySQL主数据库、如何在Docker中安装和配置MySQL从数据库以及如何验证主从数据库搭建正常,视频教程:...

    springboot2.0+mybatis主从数据库双数据源。

    在IT行业中,构建高效、可扩展的分布式系统常常需要使用主从数据库架构,以实现读写分离,提高系统的并发处理能力和数据安全性。本项目基于SpringBoot 2.0框架和MyBatis持久层技术,实现了主从数据库双数据源的配置...

    Mysql主从数据库搭建.docx

    ### MySQL主从数据库搭建知识点详解 #### 一、MySQL主从数据库搭建原理 MySQL 主从复制是一种非常重要的机制,主要用于实现数据的冗余备份、负载均衡以及提高系统的可用性。其核心思想是通过将主数据库(Master)...

    docker-compose搭建mysql主从环境.md

    docker-compose搭建mysql主从环境.md

    搭建MySQL数据库主从库平台实现数据备份.pdf

    搭建MySQL数据库主从库平台实现数据备份.pdf

    Mysql 5.6.26 主从搭建完整版.zip

    建议仔细阅读并按照指导操作,以确保成功搭建主从复制环境。 总的来说,MySQL 5.6.26的主从搭建涉及多个步骤,从配置到实施都需要细心操作。通过主从复制,你可以创建一个可靠的数据库集群,提高数据的可用性和系统...

    MySQL主从复制搭建 需要用到的脚本

    MySQL主从复制是一种常见的数据库高可用性和数据冗余策略,它允许数据在多个服务器之间同步,确保即使在主服务器故障时,从服务器也能接管服务,从而实现无中断的服务连续性。这里提到的“MySQL主从复制搭建 需要...

    MySQL主从数据库搭建方法详解

    本文实例讲述了MySQL主从数据库搭建方法。分享给大家供大家参考,具体如下: 主从服务器是mysql实时数据同步备份的一个非常好的方案了,现在各大中小型网都都会使用mysql数据库主从服务器功能来对网站数据库进行异步...

    Mysql 5.6.26 主从搭建完整版.pdf

    在本篇文章中,我们将详细介绍基于MySQL 5.6.26版本,如何搭建主从复制模式,并解决搭建过程中可能遇到的问题。文章内容涉及环境配置、MySQL安装、配置文件修改、主从同步设置等多个方面,为读者提供一个完整搭建...

    mysql主从库配置

    ### MySQL 主从库配置详解 ...通过以上步骤,我们可以成功搭建起 MySQL 的主从库结构,实现了数据的自动同步。这种架构不仅可以提高数据的安全性,还可以通过合理规划负载均衡策略,提升整体系统的性能。

    云计算基础架构-主从数据库构建.pptx

    总结来说,云计算基础架构中的主从数据库构建涉及多个关键技术点,包括Linux环境的搭建、数据库服务的安装、防火墙和安全策略的调整、以及主从复制的配置。熟练掌握这些技能,有助于构建稳定、高效、高可用的云...

    mysql数据库主从复制的搭建.md

    使用与Linux版本centos7以及7以上版本,就是傻瓜试安装,每一条命令都有详细解释和说明,关键技术,数据挂载目录,主从复制模式的三种模式,binlog的三种格式的解释说明

    mysql8主从配置( 从0到1)

    通过对MySQL主从复制的深入理解,我们可以更好地利用这一特性来实现数据库的高可用性和负载均衡。通过详细地配置和调整,可以构建出稳定可靠的MySQL主从复制架构,这对于大型网站和关键业务的应用来说至关重要。希望...

    MySQL主从配置完整步骤资料

    ### MySQL主从配置知识点详解 #### 一、主服务器配置 **1.1 创建复制用户** - **目的**: 为了确保从服务器能够连接到主服务器并获取数据更新。 - **命令**: ```sql mysql> GRANT REPLICATION SLAVE ON *.* TO '...

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

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

    搭建主从库实现Mysql数据库平台的数据备份.pdf

    搭建主从库实现Mysql数据库平台的数据备份.pdf

    mysql 主从复制环境搭建

    MySQL 主从复制环境搭建 MySQL 是一个轻量级的开源框架,具有速度快、多线程、多用户和跨平台等特点。MySQL 主从复制是指将一个 MySQL 服务器的数据实时同步到另一个 MySQL 服务器上,通常用于提高数据安全、负载...

Global site tag (gtag.js) - Google Analytics