前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux学习第五十五篇: MySQL主从介绍,准备工作,配置主,配置从,测试主从同步

linux学习第五十五篇: MySQL主从介绍,准备工作,配置主,配置从,测试主从同步

作者头像
用户1215343
发布2018-02-05 19:27:21
6410
发布2018-02-05 19:27:21
举报
文章被收录于专栏:linux运维学习linux运维学习

MySQL主从介绍

MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的

MySQL主从是基于binlog的,主上须开启binlog才能进行主从。

主从过程大致有3个步骤 1)主将更改操作记录到binlog里 2)从将主的binlog事件(sql语句)同步到从本机上并记录在relaylog里 3)从根据relaylog里面的sql语句按顺序执行

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

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

这里写图片描述
这里写图片描述

准备工作

准备两台机器,都安装mysql,详情看第三十五篇。安装后主从两台机器都启动

配置主

主上的IP:192.168.118.133

修改vim /etc/my.cnf 增加server-id=133和log_bin=xie1

这里写图片描述
这里写图片描述

修改完配置文件后,启动或者重启mysqld服务: /etc/init.d/mysqld restart 重启之后会出现两个新的文件,xie1.index和xie1.000001,index是索引文件,另一个是日志文件,这两个是实现主从的根本

这里写图片描述
这里写图片描述

把mysql库备份并恢复成xie库,作为测试数据 备份mysql库: mysqldump -uroot -p111111 mysql > /tmp/mysql.sql 创建数据库xie: mysql -uroot -p111111 -e “create database xie” 把备份数据恢复成xie库: mysql -uroot -p111111 xie < /tmp/mysql.sql

创建用作主从同步数据的用户,下面的IP 136是从的IP: grant replication slave on . to ‘repl’@’192.168.118.136’ identified by ‘111111’;·

把表锁住,不要再写入数据,暂时写到这: flush tables with read lock;

show master status; 这里的Position的数字下面的master_log_pos会用到

这里写图片描述
这里写图片描述

把主上的mysql中的库备份,到时候同步到从上

配置从

主上的IP:192.168.118.136

修改vim /etc/my.cnf 配置server-id=136,要求和主不一样,从上不用log_bin这个二进制日志文件

修改完配置文件后,启动或者重启mysqld服务 /etc/init.d/mysqld restart

把主上的备份的数据同步到从上,输入主上的root密码: scp 192.168.118.133:/tmp/*sql /tmp/

这里写图片描述
这里写图片描述

然后在从上数据库中创建对应的数据库,如上面我们同步过来的是zrlog和mysql,所以我们在在mysql中创建zrlog和mysql数据库。然后使用命令:mysql -uroot -p111111 zrlog < /tmp/zrlog.sql 把相关的数据库备份同步,要与主上的数据库一样,除了test和performance_schema数据库,因为这两个是默认的。

stop slave;

实现主从关键的一步: change master to master_host=’192.168.118.133’, master_user=’repl’, master_password=’111111’, master_log_file=’xie1.000001’, master_log_pos=658961;

start slave;

可以查看是否主从配置成功: show slave status\G; 查看下列两个是否都为YES: Slave_IO_Running: Yes Slave_SQL_Running: Yes 还需关注 Seconds_Behind_Master: 0 //为主从延迟的时间 Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error:

下列这些参数可以在主或者从上配置,在my.cnf里配置: 主服务器上 binlog-do-db= //仅同步指定的库 binlog-ignore-db= //忽略指定库 从服务器上 replicate_do_db= replicate_ignore_db= replicate_do_table= replicate_ignore_table= replicate_wild_do_table= //如aming.%, 支持通配符% replicate_wild_ignore_table=

还要到主上执行让表恢复写操作: unlock tables;

测试主从同步

进入主上数据库: mysql -uroot -p111111;

查看user表有几行: select count(*) from user;

清空user表: truncate table db;

到从上数据库中查看user表,会发现user表已同步清空: select count(*) from user;

主上继续删除user表: drop table user;

从上查看user表,发现没有了user表

有的遇到主从不能正常同步,提示uuid相同的错误。这是因为克隆机器导致。 https://www.2cto.com/database/201412/364479.html

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年01月20日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MySQL主从介绍
  • 准备工作
  • 配置主
  • 配置从
  • 测试主从同步
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档