MySQL主从介绍

(两台机器数据同步)

主:-->binlog

从:-->relaylog

主上有一个log dump线程,用来和从的I/O线程传递binlog

从上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog,另外一个SQL线程用来把relaylog里面的sql语句落地(执行)

主从的应用场景:

(1)做数据的备份,(主:作读写数据,从:实时同步,当 主 宕机时,从 也可以即使提供服务 )

(2)也是做备份。(客户从 从 这台机器上读取数据(但是不能再从上写),减轻主的压力)

准备工作

1.两台机器都装上mysql,并且都开启mysql的服务

======================== 配置主========================

主:192.1683.136.133      从:192.168.136.134

1.修改my.cnf,增加server-id=133和log_bin=canshenglinux1

log-bin=mysql-bimlog

binlog_format=mixed

server-id = 159
binlog-do-db = bim    #指定数据库
binlog-do-db = bam
binlog-do-db = apphub

2.修改完配置文件后,启动或者重启mysqld服务

重启完后,我们可以发现在/data/mysql下生成了以在配置文件中定义log_bin=canshenglinux1为开头的文件

这些文件很重要,不然不能实现主从

3.把mysql库备份并恢复成cansheng库,作为测试数据(这个库就是用来做主从)

 mysqldump -uroot -p123456 mysql > /tmp/mysql.sql

 mysql -uroot -p123456 -e “create database cansheng”

 mysql -uroot -p123456 cansheng < /tmp/mysql.sql

4.创建用作同步数据的用户

(1)先进入到mysql

(2)再创建同步数据的用户------注意修改参数

grant replication slave on *.* to 'repl'@slave_ip identified by '123456';

5.锁定一下表:

flush tables with read lock;

(为了同步前数据一致。)

show master status (查看一下position和file)

(退出mysql)

此时查看一下/data/mysql又是什么库

(一般同步不要同步mysql库,因为里面有很多用户名和密码)

6.备份一下所需要同步的库:

mysqldump -uroot -p123456 zrlog > /tmp/zrlog.sql

 ===================配置从=======================

1.查看my.cnf,配置server-id=134,要求和主不一样

2.修改完配置文件后,启动或者重启mysqld服务

/etc/init.d/mysqld restart

3.把主上需要同步的库复制过来:

scp 192.168.136.133:/tmp/*.sql /tmp/

临时创建alias,方便使用命令:

alias 'mysql=/usr/local/mysql/bin/mysql'

alias 'mysqldump=/usr/local/mysql/bin/mysqldump'

4.进入mysql

创建相对应的库:

create database cansheng;

create database zrlog;

create database mysql2;

5.数据恢复:

mysql -uroot cansheng < /tmp/mysql.sql

6.进入mysql

(1)stop slave;

(2)change master to master_host='192.168.136.133', master_user='repl', master_password='123456', master_log_file='canshenglinux1.000002', master_log_pos=646207;

(3)start slave;

(4)判定主从是否配置成功

show slave status\G

这样是表示不成功配置成功的要出现两个yes才成功。

不成功的因素:

(1)防火墙 systemctl  stop firewalld

(2)selinux   -->关闭 sentenforce 0

(3)用户名是否正确

{而我的因素是在配置主的时候指定用户名和密码错误了,从头来了一次}

7.回到主,进到mysql解除table(表)的锁定

unlock tables;

至此完成主从配置:

===========测试主从同步=====================

(只需要在主或者从,其中一个配置就可以了。这些参数默认是没有配置的,没有手动配置,那默认是同步所有的库)

在从上配置尽量使用最后两个,可以避免在忽略某个库或者表时,当级联查询的时候避免出现数据丢失,不该忽略的也忽略了!!

测试主从是否成功,是否同步!

1.两台机器都进到mysql下,进到测试的数据库:cansheng2

此时清空主上的comment表;看看从上的comment表数据是否也清空,从而同步。

truncate table comment;

删除表测试:

 我们不能再 从 这台机器上执行mysql操作,不然这时我们的主从就断开。

(因为此时我们的position已经改变)

如果此时我们的主从断开了,应该重新执行

(1)stop slave;

(2)change master to master_host='192.168.136.133', master_user='repl', master_password='123456', master_log_fil_log_file='canshenglinux1.000002', master_log_pos=646207;

(3)start slave;

(4)判定主从是否配置成功

show slave status\G

这样是表示不成功配置成功的要出现两个yes才成功。

 

mysql主从复制-方案2的更多相关文章

  1. mysql主从复制-方案1

    mysql主机master 1. 编辑mysql配置文件my.cnf server_id = 1                     #server_id服务器唯一标识 log_bin = mys ...

  2. MySQL主从复制中常见的3个错误及填坑方案

    一.问题描述 主从复制错误一直是MySQL DBA一直填不完的坑,如鲠在喉,也有人说mysql主从复制不稳定云云,其实MySQL复制比我们想象中要坚强得多,而绝大部分DBA却认为只要跳过错误继续复制就 ...

  3. 分布式数据存储 - MySQL主从复制高可用方案

    前面几篇文章说道MySQL数据库的高可用方案主从复制.主从复制的延迟产生原因.延迟检测及延迟解决方案(并未从根本上解决),这种主从复制方案保证数据的冗余的同时可以做读写分离来分担系统压力但是并非是高可 ...

  4. 马老师 生产环境mysql主从复制、架构优化方案

    Binlog日志(主服务器) => 中继日志(从服务器 运行一遍,保持一致).从服务器是否要二进制日志取决于架构设计.如果二进制保存足够稳定,从性能上来说,从服务器不需要二进制日志.默认情况下, ...

  5. 【大型网站技术实践】初级篇:搭建MySQL主从复制经典架构

    一.业务发展驱动数据发展 随着网站业务的不断发展,用户量的不断增加,数据量成倍地增长,数据库的访问量也呈线性地增长.特别是在用户访问高峰期间,并发访问量突然增大,数据库的负载压力也会增大,如果架构方案 ...

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

    MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过.但在实际的生产环境中, ...

  7. mysql学习(3)-linux下mysql主从复制

    前言:为什么MySQL要做主从复制(读写分离)?通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低.为了提升业务系统性能,优化用户体验,可以通过做主从复制(读写分离)来减轻 ...

  8. mysql主从复制的一篇文章(转载)

      管理mysql主从有2年多了,管理过200多组mysql主从,几乎涉及到各个版本的主从,本博文属于总结性的,有一部分是摘自网络,大部分是根据自己管理的心得和经验所写,整理了一下,分享给各位同行,希 ...

  9. mysql主从复制的一些东西的整理

    最近给新上线的项目进行主从结构的搭建,因此整理些有用的东西出来,供作记录: 一.mysql主从复制的一般配置步骤: 1.准备两台数据库环境,或者单台多实例的环境,能够正常的启动和登陆. 2.配置my. ...

随机推荐

  1. python网络编程(十三)

    协程-greenlet版 为了更好使用协程来完成多任务,python中的greenlet模块对其封装,从而使得切换任务变的更加简单 安装方式 使用如下命令安装greenlet模块: sudo pip ...

  2. PAT Basic 1004

    1004 成绩排名 (20 分) 读入 n(>0)名学生的姓名.学号.成绩,分别输出成绩最高和成绩最低学生的姓名和学号. 输入格式: 每个测试输入包含 1 个测试用例,格式为 第 1 行:正整数 ...

  3. 通过DCGAN进行生成花朵

    环境是你要安装Keras和Tensorflow 先来个network.py,里面定义了生成器网络和鉴别器网络: # -*- coding: UTF-8 -*- """ D ...

  4. 牛客网测试题--小a和黄金街道

    小a和小b来到了一条布满了黄金的街道上.它们想要带几块黄金回去,然而这里的城管担心他们拿走的太多,于是要求小a和小b通过做一个游戏来决定最后得到的黄金的数量.游戏规则是这样的:假设道路长度为米(左端点 ...

  5. weblogic 内存配置

    修改weblogic 使用内存 修改位置:startWeblogic.sh 在最开头增加使用内存配置信息如下: 我的服务器配置 内存:32G   ,CPU:16  根据实际情况配置 #!/bin/sh ...

  6. Linux命令第二篇

    作业二: 1)   在用户的主目录下创建目录test,进入test创建空文件file1 # ls /home/test file 2)   以长格式形式显示文件信息,注意文件的权限和所属用户和组 # ...

  7. 【二分】Producing Snow @Codeforces Round #470 Div.2 C

    time limit per test: 1 second memory limit per test: 256 megabytes Alice likes snow a lot! Unfortuna ...

  8. poj3258 River Hopscotch(二分最小值,好题)

    https://vjudge.net/problem/POJ-3258 二分最小值,判断需要删去的点的个数,如果大于给定,则直接return 0,则说明该数需要再小. 最后注意,起点是0终点是l,起点 ...

  9. 如何修改IE浏览器的User-Agent用户代理字符串信息

    每款浏览器都有一个专属的 User-Agent 字符串信息, 通过 User-Agent 网站可以检测用户所使用的浏览器版本.某些网站为了让用户获得更好的浏览体验,通过检测用户的浏览器版本,以确认用户 ...

  10. vue-cli配置多入口多出口,实现一个项目两个访问地址,区分不同上线环境

    最近工作中需要把项目分割成两块,一块需要跑在微信中,通过微信jdk获取用户资料默认登录,一部分需要给原生app做webview的内嵌页面,当然这部分内容是不跑在微信中的. 所以我想到了把项目分成两部分 ...