mysql07---主从复制
mysql主从复制,replication,(可以一主多从,不可一从多主) 原理: 主从分离,最少2台服务器。主服务器里面的数据,要在从服务器里面都有一份。
把主服务器的所有insert,update操作,都记录在binlog二进制日志文件里面,从服务器来读取binlog进行操作。binlog是主服务器的,从服务器不能直接使用,要转换为relog再操作。 1.主服务器要配置binlog
2.从服务器要配置relaylog
3.从服务器如何有权读取binlog(2个服务器的ip地址都不一样),主服务器就要授权slave账号,从服务器通过账号连接主服务器。 实现步骤:
1.首先确保主服务器打开二进制日志binlog功能,这样主服务器一旦有数据变化就立即产生二进制日志。
2.从服务器也要开启二进制日志binlog(从服务器的二进制日志也要打开,便于以后恢复数据,如果这个从服务器有从服务器,那么二进制日志用得到的)和relay日志relay-log功能(从服务器多打开relay功能)。这样可以从主服务器读取binlog并产生relaylog
3.在主服务器建立一个从服务器的账号,并授予读binlog的权限
4.指定从服务器对应的主服务器,开启从服务器 具体实施:
1.200做从服务器,199为主服务器
2.保证从3306端口互通
3.配置主服务器,打开binlog /* binlog format : 主服务器update之后,从服务器也执行update。不看执行的语句,只看主服务器的磁盘变化了,从服务器就跟着磁盘变化。
binlog format:row/statement //2进制日志记录的格式
statement:记录的是执行语句,如update
row:记录磁盘的变化
哪个好:
update age=age+1 where id=3; //语句长磁盘变化小,宜用row
update salary = saslary +10000; //语句短,但是影响上万行,宜用statement,
拿不准就用mixed:由系统判断。 */ //配置主服务器
192.168.1.201>
[mysqld]
datadir=/var/lib/mysql
socket=/var/mysql/mysql.sock
user=mysql
symbolic-links=0 server-id=201 //给服务器起一个独特的id
log-bin=mysql-bin //声明2进制日志的文件为mysql-bin-xxxx
binlog-format=mixed 192.168.1.201> cd /var/lib/mysql/
192.168.1.201> rm -rf ./mysql-bin* //删除之前产生的日志文件
192.168.1.201> service mysqld start //重启mysql //配置从服务器
192.168.1.202>
[mysqld]
datadir=/var/lib/mysql
socket=/var/mysql/mysql.sock
user=mysql
symbolic-links=0 server-id=202 //给服务器起一个独特的id
log-bin=mysql-bin //开启binlog,如果数据丢失了,但是二进制日志没有丢可以恢复数据。
binlog-format=mixed relay-log=mysql-relay //从服务器多打开relay日志功能 192.168.1.202> cd /var/lib/mysql/
192.168.1.202> rm -rf ./mysql-bin* //删除之前产生的日志文件
192.168.1.202> service mysqld start //重启mysql //主从服务器已经建立起来了,但是2者还没有关系
//配置主服务器
192.168.1.201> mysql -uroot -p //登陆进去,cd /var/lib/mysql 可以看到mysql-bin.00001日志文件
192.168.1.201> show master status //可以查看当前binlog文件,可以看到他已经具有了主服务器的权限了(mysql库里面有表)
192.168.1.201> grant replication client,replication slave on *.* to repl@'192.168.1.%' identified by 'repl' //授权账号,'192.168.1.%'局域网都可以,密码'repl',
192.168.1.201> flush privileges //现在有了一个repl账号,有权读取主服务器的binlog //配置从服务器
192.168.1.202> mysql -uroot -p //登陆进去
192.168.1.202> show slave status //(mysql库里面有表),现在是空的。
192.168.1.202> change master to //连接哪个主服务器
master_host='192.168.1.201',
master_user='repl', //连接的时候使用什么账号
master_password='repl',
master_log_file='mysql-bin.00001', //现在主服务器正在使用的binlog日志文件,通过主服务器show master status可以看到
master_log_pos=348; //通过主服务器show master status可以看到
192.168.1.202> show slave status //可以看到已经打通了
192.168.1.202> start slave //起
192.168.1.202> sop slave //关闭
192.168.1.202> start slave //起
192.168.1.202> show slave status //看起的时候有没有错误。 //测试:主服务器有从服务器也有。
//telnet 192.168.1.201 3306 ; ping 192.168.1.201
192.168.1.201> create database test8
192.168.1.202> show database //多了test8
192.168.1.201> use test8
192.168.1.201> create table stu(sid int,sname char(20))
192.168.1.202> use test8 show database //多了stu
192.168.1.201>insert into stu values(1,'lili')
192.168.1.202> #还有主主复制,你当我的主我当你的从。两台主主背后还可以拖着一个从。 这时mysql的主从复制,但不是读写分离。读写分离是:读只从从服务器,insert.delete.update在主服务器。是sql语句自动分开执行。
读写分离可以在php级别做判断,也可以用集群中间件例如mysql_proxy,
mysql07---主从复制的更多相关文章
- MySQL 系列(四)主从复制、备份恢复方案生产环境实战
第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...
- [原]Redis主从复制各种环境下测试
Redis 主从复制各种环境下测试 测试环境: Linux ubuntu 3.11.0-12-generic 2GB Mem 1 core of Intel(R) Core(TM) i5-3470 C ...
- MySQL+Amoeba实现数据库主从复制和读写分离
MySQL读写分离是在主从复制的基础上进一步通过在master上执行写操作,在slave上执行读操作来实现的.通过主从复制,master上的数据改动能够同步到slave上,从而保持了数据的一致性.实现 ...
- Redis主从复制
大家可以先看这篇文章ASP.NET Redis 开发对Redis有个初步的了解 Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此 ...
- MySQL主从复制(Master-Slave)实践
MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展.多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能. 下图就描述了一个多个数 ...
- 2.快速部署MySQL主从复制
1.快速部署MySQL主从复制 [root@mysql ~]# mysql -uroot -p123456 -S /data/3307/mysql.sock -e "show slave ...
- MySQL 主从复制
1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重 ...
- MySQL 主从复制与读写分离概念及架构分析
1.MySQL主从复制入门 首先,我们看一个图: 影响MySQL-A数据库的操作,在数据库执行后,都会写入本地的日志系统A中. 假设,实时的将变化了的日志系统中的数据库事件操作,在MYSQL-A的33 ...
- Mongodb数据库学习系列————(一)Mongodb数据库主从复制的搭建
Mongodb数据库主从复制的搭建 Writeby:lipeng date:2014-10-22 最近项目上用到了位置查询,在网上 ...
- mysql主从复制操作步骤
注: .做主从复制的两台服务器server-id不能相同 .主从的字符集要一样,不然数据导入会报错 .开启db01的log-bin功能 [root@db01 mysql]# vim /etc/my.c ...
随机推荐
- Leetcode 283.移动零
移动零 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序. 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组 ...
- HDU1757-A Simple Math Problem,矩阵快速幂,构造矩阵水过
A Simple Math Problem 一个矩阵快速幂水题,关键在于如何构造矩阵.做过一些很裸的矩阵快速幂,比如斐波那契的变形,这个题就类似那种构造.比赛的时候手残把矩阵相乘的一个j写成了i,调试 ...
- CentOS7中,vnc分辨率设置。
使用geometry参数进行调整 例如,我们需要将分辨率调整到800x600 [root@secdb ~]# vncserver -geometry 800x600 New 'secdb:5 (roo ...
- bzoj 1701 [Usaco2007 Jan]Cow School牛学校
[Usaco2007 Jan]Cow School牛学校 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 175 Solved: 83[Submit][S ...
- 【bzoj1042】[HAOI2008]硬币购物-递推与动规-容斥原理
硬币购物 硬币购物一共有4种硬币.面值分别为c1,c2,c3,c4.某人去商店买东西,去了tot次.每次带di枚ci硬币,买si的价值的东西.请问每次有多少种付款方法. Input 第一行 c1,c2 ...
- Hotel(poj 3667)
题意:询问区间最长连续空串 /* 用线段树维护区间最长连续左空串和右空串 */ #include<cstdio> #include<iostream> #define N 50 ...
- [NOIP2003] 提高组 洛谷P1041 传染病控制
题目背景 近来,一种新的传染病肆虐全球.蓬莱国也发现了零星感染者,为防止该病在蓬莱国大范围流行,该国政府决定不惜一切代价控制传染病的蔓延.不幸的是,由于人们尚未完全认识这种传染病,难以准确判别病毒携带 ...
- hiho一下 第四十五周 博弈游戏·Nim游戏·二 [ 博弈 ]
传送门 题目1 : 博弈游戏·Nim游戏·二 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Alice和Bob这一次准备玩一个关于硬币的游戏:N枚硬币排成一列,有的正面 ...
- HTML介绍&常用的标签
HTML介绍 1. web服务器本质 import socket s = socket.socket() s.bind(('127.0.0.1', 8080)) s.listen(5) while T ...
- ***js常用方法汇总(源自实际中的项目)
Q: 400-819-0717转8888,取后四位分机号 A: 方法一: alert("abcdefg".slice(-4));方法二:var str= "abcdefg ...