Mysql数据库主从复制原理:

主库开启bin-log日志,同时生成IO线程。IO线程负责将用户写入数据库的sql语句记录在二进制日志bin-log,该记录过程可并发进行;生成标识号 server id ;创建主从复制账号。

  从库不需要开启bin-log日志,开启主从复制后,从库将产生一个IO线程,从库IO线程监控主库bin-log日志,当bin-log 日志发生变化时,从IO线程将会通过3306端口向主IO线程申请验证,进行数据交换,具体验证信息:1 主库IP和端口号、2 主库的复制账号和密码、3 所要复制的bin-log日志的文件名、4 文件中position具体位置。验证通过后主IO线程将对应的内容复制给从IO线程,该过程可以并发进行。此时从库文件master.info 记录了验证信息和完成数据交换的bin-log日志文件及文件中的位置信息。从库IO线程将内容放在从库中继日志relay-log中。SQL线程启动,查看relay-log ,将其中更新的二进制语句编译解析成sql语句,存储在从库的mysql data 目录中,并在relay-log.info文件中记录sql进程解析relay-log的文件名及位置信息,完成主从复制。

主从备份搭建

试验环境:master: 1922.168.200.151  slave : 192.168.200.129

一、     建立时间同步环境

l  Master:安装配置ntp时间同步服务

#yum –y install ntp

#cp /etc/ntp.conf /etc/ntp.conf.origin

#vim /etc/ntp.conf

22 server 127.127.1.0  //手动添加

23 fudge 127.127.1.0 startum 8 //手动添加

#/etc/init.d/ntpd start

#chkconfig ntpd on

l  Slave :

# yum –y install ntpdate

#ntpdate 192.168.200.151

二、     在master上执行操作配置

1、     1.1开启bin-log日志,并设置server-id 值

# vim /etc/my.cnf

    

    

**上面三个参数要放在[mysqld]模块下;添加参数并不能重复

#/etc/init.d/mysqld start

    

    

1.2登陆数据库,检查参数的更改情况

    

    

 2、   建立主从复制账号(权限为允许从库连接并同步数据)

2.1登陆数据库,建立主从复制账号yunjisuan

    #mysql –uroot –p123123

    >grant replication slave on *.* to ‘yunjisuan’@‘192.168.200.129’identified by ‘yunjisuan123’;

    

    

    注:replication slave 为mysql同步的必须权限,此处不要授予all权限

    >flush privileges;

    2.2检查创建的账号

    >select user,host from mysql.user;

    

  3、 对主库锁表全备份

3.1对主数据库锁表只读

>flush table with read lock;  //零时锁表,超过设置时间,将会自动解锁

    

  3.2 锁表后查看主库状态。可通过当前bin-log日志文件名和bin-log日志偏移量来查看

注:show master status 命令显示信息要记录在案,后面从库导入全备后,继续和主库复制是要从这个位置开始。

> show master status;

   

  3.3新开一个SSH窗口,全备数据库数据  

     

   3.4 解表主库

>unlock tables;

3.5 将全备数据推送到从库

      

三、     配置从服务器

  1.1    将全备份数据导入从库

  #mysql –uroot –p123123 < /temp/mysql_all*

  2.2#vim /etc/my.cnf

  

  #/etc/init.d/mysqld start

2.3 给从库记录主从复制验证信息

   2.4启动从库主从复制开关,并查看复制状态

  

  导致lave_IO_Running 为connecting 的原因主要有以下 3 个方面:网络不通;

  密码不对;pos不对

  经排查是秘密输错了,再次>show slave status\G;

  

msql主从复制的更多相关文章

  1. MySQL多数据源笔记1-MySQL主从复制

    1.为什么要做主从复制? 1.在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出 ...

  2. maria(mysql)的主从复制

    一.mariadb的基本操作 1.远程连接 mysql -uroot -p -h 127.0.0.1 mysql -uroot -p -h 192.168.226.128 2.赋予远程连接的权限 gr ...

  3. MYSQL5.7进阶之主从复制

    主从复制是msql数据库的高可用 读写分离 容灾备份 等的基本要求 在这主从复制之前我们需要准备以下条件 保证master数据库和从数据库的mysql版本一致 matser和从数据防火墙关闭 数据库端 ...

  4. MySQL 系列(四)主从复制、备份恢复方案生产环境实战

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...

  5. [原]Redis主从复制各种环境下测试

    Redis 主从复制各种环境下测试 测试环境: Linux ubuntu 3.11.0-12-generic 2GB Mem 1 core of Intel(R) Core(TM) i5-3470 C ...

  6. MySQL+Amoeba实现数据库主从复制和读写分离

    MySQL读写分离是在主从复制的基础上进一步通过在master上执行写操作,在slave上执行读操作来实现的.通过主从复制,master上的数据改动能够同步到slave上,从而保持了数据的一致性.实现 ...

  7. Redis主从复制

    大家可以先看这篇文章ASP.NET Redis 开发对Redis有个初步的了解 Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此 ...

  8. MySQL主从复制(Master-Slave)实践

    MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展.多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能. 下图就描述了一个多个数 ...

  9. 2.快速部署MySQL主从复制

      1.快速部署MySQL主从复制 [root@mysql ~]# mysql -uroot -p123456 -S /data/3307/mysql.sock -e "show slave ...

随机推荐

  1. learning uboot distro design in am335x-evm board

    reference: uboot_dir/doc/README.distro Linux distributions are faced with supporting a variety of bo ...

  2. mysql主从搭建之诡异事件

    今天在搭建主从后出现了主库system账号丢失INSERT权限的情况,记录如下 主库: system账号权限同root权限,并且mysql库已经删除 从库: mysql库存在,无system账号 主从 ...

  3. .net群讨论笔记

    本篇为.net群中学到的零碎知识点笔记,将持续更新 感谢群内大神,群号(128485855) 1.关于URL编码问题encodeURIComponent 2.c#直接打开本机的excel(包括其他类型 ...

  4. @one to many 和 @many to one小例子

    一个机构  : 多个用户 OrgTable实体类 :User实体类 OrgTable.java(一) 注解@OnetoMany,mappedBy=“org”,就是由“多”的那端维护(下面User类定义 ...

  5. git 添加review的相关操作

    git主机上涉及到的操作: 185 git branch 186 git pull 187 git branch 188 git checkout -b wangcheng 189 git log 1 ...

  6. MyEclipse移动开发教程:设置所需配置的iOS应用(二)

    MyEclipse个人授权 折扣低至冰点!立即开抢>> [MyEclipse最新版下载] 二.创建一个数字证书和私钥 2.2 生成证书签名请求和私钥文件 第一步是使用数字签名实用程序创建证 ...

  7. phpstorm 破解方法

    前提概要:我收到博友:3102009292 的消息,发给我另一个破解PHPstorm的方法,我亲测有效,方便快捷,在和博友商量后,决定加入我的本文章中,供更多的开发者参考,话不多说,重点来了. 按照P ...

  8. 【记录】恢复win7与ARM开发板TQ2440的串口连接

    1.给板子上电. 2.接好物理上的串口连接,板子那端就是普通的RS232串口,电脑这端是USB转串口的线的USB这头,连到电脑上,然后在Win7系统下,先去看看,当前连接的USB虚拟出来的串口是哪个口 ...

  9. PHP中redis的使用

    redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集合).这些数据类 ...

  10. Eclipse中SVN的安装步骤(两种)和使用方法

    Eclipse中SVN的安装步骤(两种)和使用方法 一.给Eclipse安装SVN,最常见的有两种方式:手动方式和使用安装向导方式.具体步骤如下: 方式一:手动安装 1.下载最新的Eclipse,我的 ...