首先要明白为什么要用 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 的主从复制(高级篇)相关推荐

  1. 数据库MySQL学习笔记高级篇(周阳)

    数据库MySQL学习笔记高级篇 1. mysql的架构介绍 mysql简介 高级Mysql mysqlLinux版的安装 mysql配置文件 mysql逻辑架构介绍 mysql存储引擎 2. 索引优化 ...

  2. MySQL教程——4 高级篇(性能调优、锁)

    1. 应用优化 前面章节,我们介绍了很多数据库的优化措施.但是在实际生产环境中,由于数据库本身的性能局限,就必须要对前台的应用进行一些优化,来降低数据库的访问压力. 1.1 使用连接池 对于访问数据库 ...

  3. mysql精讲高级篇

    第01章_Linux下MySQL的安装与使用 1. 安装前说明 1.1 Linux系统及工具的准备 安装并启动好两台虚拟机CentOS7 掌握克隆虚拟机的操作 mac地址 主机名 虚拟机centos7 ...

  4. Mysql优化(高级篇)

    Mysql数据库优化篇 Q: 为什么别人问你MySQL优化的知识 总是没有底气. A: 因为你只是回答一些大而化之的调优原则, 比如:"建立合理索引"(什么样的索引合理?) &qu ...

  5. kali mysql停止服务器_MySQL 的主从复制(高级篇)

    首先要明白为什么要用 mysql 的主从复制: 1–在从服务器可以执行查询工作 (即我们常说的读功能),降低主服务器压力:(主库写,从库读,降压) 2–在从主服务器进行备份,避免备份期间影响主服务器服 ...

  6. mysql 命令行 主从复制_MySQL 的主从复制(高级篇)

    首先要明白为什么要用 mysql 的主从复制: 1–在从服务器可以执行查询工作 (即我们常说的读功能),降低主服务器压力:(主库写,从库读,降压) 2–在从主服务器进行备份,避免备份期间影响主服务器服 ...

  7. mysql高级篇学习笔记

    目录 前言 1 mysql安装及运行(linux环境) 1.1 安装前检查 1.2 MySQL卸载 ①**关闭 mysql 服务** ②**查看当前 mysql 安装状况** ③**卸载上述命令查询出 ...

  8. Mysql优化高级篇(全)

    目录 前言 1. 简介 1.1 安装 1.2 MySQL逻辑架构 1.2.1 存储引擎 2. 索引优化分析 2.1 原因 2.2 常见通用的join查询 2.3 索引 2.3.1 索引分类 2.3.2 ...

  9. mysql高级篇(二)mysql索引优化分析

    mysql高级篇笔记 mysql高级篇(一)mysql的安装配置.架构介绍及SQL语句的复习. mysql高级篇(二)mysql索引优化分析. mysql高级篇(三)查询截取分析(慢查询日志).主从复 ...

最新文章

  1. 零基础入门学习Python(6)-常用操作符
  2. gitlab邮箱验证 邮箱提醒设置
  3. Android 数据库框架ormlite 使用精要
  4. 【Arduino】Nano功能引脚 PWM IIC UART 中断
  5. PAT:1090. Highest Price in Supply Chain (25) AC
  6. 项目使用了redis还需要mysql_【11-05】lnmp项目中Redis和Mysql配合使用应该注意哪些问题?...
  7. 【CyberSecurityLearning 74】DC系列之DC-5渗透测试
  8. 谈谈java中成员变量与成员方法继承的问题
  9. IntelliJ IDEA 的这个接口调试工具真是太好用了!
  10. Struts结合梅花雪实现动态生成树
  11. 【Oracle】详解ADDM工具
  12. 【bzoj5072】[Lydsy十月月赛]小A的树 树形背包dp
  13. 关于代码整理重构小记
  14. python群聊机器人_基于python-wechaty的群聊助手机器人
  15. 软件工程—01可行性研究报告
  16. 深入了解一下C语言scanf()库函数
  17. C语言解数独(含源码) 2020/8/19
  18. ti-sdk-evm-am335x-05.07 uboot分析(MLO跳转到u-boot之前)
  19. verilog写的三分频
  20. 数字兆欧表的使用及安全注意事项

热门文章

  1. 良许Linux | 寓教于乐!一款游戏让你成为 Vim 高手!
  2. transmit video
  3. 车辆搜索 -使用triplet loss 训练车辆识别模型
  4. 按键精灵文字识别插件_【买三赠一】iOS按键精灵VIP夏季特惠进行中
  5. #萌新日志#3.使用pix2pix CycleGAN和3d CycleGAN实现T1和T2加权模态的互转
  6. ventoy集成微PE+优启通;vmware虚拟机如何进入PE系统,ventoy启动盘制作。
  7. C语言中的逻辑移位和算术移位
  8. VC中鼠标移动点击操作
  9. python 程序员专属情话_拿来就能用!Python 每天定时发送一句情话 | 原力计划
  10. linux 下通过 httpd服务创建网页