MySQL 的主从复制(高级篇)
首先要明白为什么要用 mysql 的主从复制:
1–在从服务器可以执行查询工作 (即我们常说的读功能),降低主服务器压力;(主库写,从库读,降压)
2–在从主服务器进行备份,避免备份期间影响主服务器服务;(确保数据安全)
3–当主服务器出现问题时,可以切换到从服务器。(提升性能)
来说一下主从复制的实现原理
mysql 复制过程分为三步(如上图所示):
1.mster 将改变记录到二进制日志 (binary log) 当中 这些记录过程叫做二进制日志事件 binary log events;
2.slave 将 master 的 binary log events 拷贝到它的中继日志 (relay log) 当中;
3.slave 重做中继日志中的事件 将改变应用到自己的数据库当中 mysql 复制是异步的且串行化的 3.slave 重做中继日志中的事件 将改变应用到自己的数据库当中 mysql 复制是异步的且串行化的
复制的最大问题:
从主机复制数据达到从机可能会有延时!
都说 master 主机和 slave 从机的 mysql 版本号要一致 我就没一致
master 主机上是 5.6 slave 从机上是 5.7 一样搞
拿过来一台服务器你不得先找 mysql 吗?mysql 在哪里 配置文件在哪里?
执行命令:
which mysql
/usr/bin/mysql --verbose --help | grep -A 1 'Default options'
结果如图所示:
先去找 /etc/my.cnf 再去找 /etc/mysql/my.cnf 然后就是后边
我的是在 /etc/my.cnf
修改 my.cnf 配置文件如下:
#主从复制,主机配置
#服务器id 必须
server-id=1#启用二进制日志 必须
log-bin=master-bin#主机 读写都可以 必须
read-only=0#要忽略的数据库 可选
binlog-ignore-db=mysql#指定索引文件的位置
log_bin_index = master-bin.index#要复制的数据库 可选
binlog_do_db=wordpress
重启 mysql 服务器执行命令:
systemctl restart mysqld
解释:
server-id=1 // 复制组中的每台服务器都要配置唯一的 Server ID,取值范围是 1 到 (232)−1,你自己决定取值,习惯主机为1,从机为其它值
log-bin=master-bin // 日志文件名以 “master-bin” 作为前缀
binlog-do-db=finance_online // 要同步的 finance_online 数据库
如要同步多个数据库,就多加几个 replicate-db-db = 数据库名
binlog-ignore-db=mysql // 要忽略的数据库
read-only // 主机 读写都可以 (必须)
登录上 mysql 然后执行:
show master status;
结果如下:
记住里面的 File 和 Position 的值 待会会用到!
在主数据中创建一个同步账号(可不创建使用现有的),如果仅仅为了主从复制创建账号,只需要授予 REPLICATION SLAVE 权限
创建账号赋予权限,查看文章: mysql授权replication_MySQL创建用户并授权REPLICATION CLIENT和REPLICATION SLAVE
创建一个账号,账号:zcfz 密码: 123456
这个账号是专门用来搞主从复制用的哈
上述 主服务器配置完成
slave 从服务器配置开始:
#主从复制,从机配置
#服务器id 必须
server-id=2#启用二进制日志 可选
log-bin=slave-bin
重启 mysql 服务器:
systemctl restart mysqld
进入到 slave 从机的 mysql 命令行执行命令:
#如果已经打开,先关闭
stop slave;
CHANGE MASTER TO MASTER_HOST='10.10.20.120',
MASTER_USER='zcfz',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='master-bin.000005',
MASTER_LOG_POS=3878614;
解释:
MASTER_HOST 就是 master 主服务器的 ip
MASTER_USER 就是 master 主服务器里面的专门复制复制的用户 zcfz
MASTER_PASSWORD 就是 zcfz 账户的密码
MASTER_LOG_FILE 就是我们上边让您保存的 file 对应的值
MASTER_LOG_POS 就是我们上边让您保存的 Position 的值
然后执行命令:
start slave;
然后执行命令:
show slave status\G
结果如图所示:
wating for master to send evnet 说明已经在待命状态了
另外必须注意的是 slave_io_runing 以及 slave_sql_runing 都同时必须为 yes 才行!!!(实际使用中碰到两个都为no,也是可以使用,具体情况不明)
截止到此刻说明主从复制的道路打通了!
验证阶段:
执行命令创建数据库:
CREATE DATABASE finance_online DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
这个时候 master 和 slave 上都有了数据库
然后你再导入数据到 master 主机上的 finance_online 那么 slave 从机上也就有了然后你再导入数据到 master 主机上的 finance_online 那么 slave 从机上也就有了
另外如果你不想复制这个库了 想换一个
那么去修改 master 主机上的 my.cnf 当中的 binlog-do-db=tprbac 然后重启 mysql 服务
然后 show master status 看看 file 和 positon
然后再去 linux 服务器上停止 slave 在 mysql 当中执行 stop slave;
然后再执行:
CHANGE MASTER TO MASTER_HOST=’10.10.20.120’,
MASTER_USER=’zcfz’,
MASTER_PASSWORD=’123456’,
MASTER_LOG_FILE=‘你看到的 file’,
MASTER_LOG_POS = 你看到的 positon;
然后在 start slave;
就完事了!
这样就会主从复制你想要复制的数据库了!!!
MySQL 的主从复制(高级篇)相关推荐
- 数据库MySQL学习笔记高级篇(周阳)
数据库MySQL学习笔记高级篇 1. mysql的架构介绍 mysql简介 高级Mysql mysqlLinux版的安装 mysql配置文件 mysql逻辑架构介绍 mysql存储引擎 2. 索引优化 ...
- MySQL教程——4 高级篇(性能调优、锁)
1. 应用优化 前面章节,我们介绍了很多数据库的优化措施.但是在实际生产环境中,由于数据库本身的性能局限,就必须要对前台的应用进行一些优化,来降低数据库的访问压力. 1.1 使用连接池 对于访问数据库 ...
- mysql精讲高级篇
第01章_Linux下MySQL的安装与使用 1. 安装前说明 1.1 Linux系统及工具的准备 安装并启动好两台虚拟机CentOS7 掌握克隆虚拟机的操作 mac地址 主机名 虚拟机centos7 ...
- Mysql优化(高级篇)
Mysql数据库优化篇 Q: 为什么别人问你MySQL优化的知识 总是没有底气. A: 因为你只是回答一些大而化之的调优原则, 比如:"建立合理索引"(什么样的索引合理?) &qu ...
- kali mysql停止服务器_MySQL 的主从复制(高级篇)
首先要明白为什么要用 mysql 的主从复制: 1–在从服务器可以执行查询工作 (即我们常说的读功能),降低主服务器压力:(主库写,从库读,降压) 2–在从主服务器进行备份,避免备份期间影响主服务器服 ...
- mysql 命令行 主从复制_MySQL 的主从复制(高级篇)
首先要明白为什么要用 mysql 的主从复制: 1–在从服务器可以执行查询工作 (即我们常说的读功能),降低主服务器压力:(主库写,从库读,降压) 2–在从主服务器进行备份,避免备份期间影响主服务器服 ...
- mysql高级篇学习笔记
目录 前言 1 mysql安装及运行(linux环境) 1.1 安装前检查 1.2 MySQL卸载 ①**关闭 mysql 服务** ②**查看当前 mysql 安装状况** ③**卸载上述命令查询出 ...
- Mysql优化高级篇(全)
目录 前言 1. 简介 1.1 安装 1.2 MySQL逻辑架构 1.2.1 存储引擎 2. 索引优化分析 2.1 原因 2.2 常见通用的join查询 2.3 索引 2.3.1 索引分类 2.3.2 ...
- mysql高级篇(二)mysql索引优化分析
mysql高级篇笔记 mysql高级篇(一)mysql的安装配置.架构介绍及SQL语句的复习. mysql高级篇(二)mysql索引优化分析. mysql高级篇(三)查询截取分析(慢查询日志).主从复 ...
最新文章
- 零基础入门学习Python(6)-常用操作符
- gitlab邮箱验证 邮箱提醒设置
- Android 数据库框架ormlite 使用精要
- 【Arduino】Nano功能引脚 PWM IIC UART 中断
- PAT:1090. Highest Price in Supply Chain (25) AC
- 项目使用了redis还需要mysql_【11-05】lnmp项目中Redis和Mysql配合使用应该注意哪些问题?...
- 【CyberSecurityLearning 74】DC系列之DC-5渗透测试
- 谈谈java中成员变量与成员方法继承的问题
- IntelliJ IDEA 的这个接口调试工具真是太好用了!
- Struts结合梅花雪实现动态生成树
- 【Oracle】详解ADDM工具
- 【bzoj5072】[Lydsy十月月赛]小A的树 树形背包dp
- 关于代码整理重构小记
- python群聊机器人_基于python-wechaty的群聊助手机器人
- 软件工程—01可行性研究报告
- 深入了解一下C语言scanf()库函数
- C语言解数独(含源码) 2020/8/19
- ti-sdk-evm-am335x-05.07 uboot分析(MLO跳转到u-boot之前)
- verilog写的三分频
- 数字兆欧表的使用及安全注意事项
热门文章
- 良许Linux | 寓教于乐!一款游戏让你成为 Vim 高手!
- transmit video
- 车辆搜索 -使用triplet loss 训练车辆识别模型
- 按键精灵文字识别插件_【买三赠一】iOS按键精灵VIP夏季特惠进行中
- #萌新日志#3.使用pix2pix CycleGAN和3d CycleGAN实现T1和T2加权模态的互转
- ventoy集成微PE+优启通;vmware虚拟机如何进入PE系统,ventoy启动盘制作。
- C语言中的逻辑移位和算术移位
- VC中鼠标移动点击操作
- python 程序员专属情话_拿来就能用!Python 每天定时发送一句情话 | 原力计划
- linux 下通过 httpd服务创建网页