一、mysql主从配置原理

1.master将操作记录写到二进制日志中(binary log)中;
2.slave IO 线程将master的binary log events读写到它的中继日志(relay log);
3.slave SQL线程读取中继日志,将日志中事件进行重放再从而保持与master数据同步;

二、配置流程

配置要点:

1.主服务器mysql必须打开二进制日志(bin-log)功能

2.从服务器具备请求从主服务器传输二进制日志文件的权限

3.主从服务器mysql版本保持一致

4.主从服务器在主从配置启动之前数据保持一致

配置环境:

节点 IP 操作系统 mysql版本
master 192.168.1.197 centos7.2 5.7.17
slave 192.168.1.196 centos7.2 5.7.17

配置步骤:

1.修改master配置

#vim /etc/my.cnf
[mysqld]下
log-bin=mysql-bin   //【必须】启用二进制日志
server-id=197    //【必须】服务器唯一id,必须唯一,默认为1,这里为IP最后一段

2.修改slave配置

#vim /etc/my.cnf
[mysqld]下
log-bin=mysql-bin   //【非必须】启用二进制日志
server-id=196    //【必须】master-id,必须唯一,默认为1,这里为IP最后一段

3.重启两台服务器mysql

service mysqld restart

4.在master上创建账号并赋予slave权限

a.master创建账号
mysql> create user 'admin'@'%' identified by 'xxx';
b.在master上为slave授权
MySQL [(none)]> GRANT REPLICATION SLAVE ON *.* to 'admin'@'%' identified by 'xxx';

5.登陆master,查看master状态
show master status;


注:做完此步骤后不要再对master做任何操作,以防master状态变化,记录下当前master状态

6.配置slave

mysql> change master to master_host='192.168.1.197',master_user='admin',master_password='xxx',master_log_file='mysql-bin.000004',master_log_pos=23907;    //与master配置一致

7.查看slave状态

mysql> show slave status \G


看到Slave_IO_Running:YES,Slave_SQL_Running:YES,说明slave配置成功

8.主服务器测试
master中创建了同步测试数据库sysn_test_db,其中有表sysn_test_db,可对表操作后去slave库中查看是否同步成功。

三、mysql从节点切换主节点

目前配置是一主节点一从节点,当主节点发生故障时,将从节点切换为主节点,同时旧的主节点切换为从节点。首先确保从节点上开启了bin-log,操作流程如下;

1. 首先确保从节点已经执行了relay log 中的全部更新。在从库中执行stop slave io_thread,停止IO线程,然后检查show processlist的输出,看到输出中出现"Slave has read all log;waiting for the slave I/O thread to update it"代表更新完毕。

mysql> stop slave io_thread;
mysql> show processlist\G*************************** 1. row ***************************Id: 3User: system userHost:db: NULL
Command: ConnectTime: 2601State: Slave has read all relay log; waiting for the slave I/O thread to update itInfo: NULL
*************************** 2. row ***************************Id: 4User: rootHost: localhostdb: NULL
Command: QueryTime: 0State: NULLInfo: show processlist
2 rows in set (0.00 sec)

2.停止从库slave服务,并将其切换为master。并对旧master授权,使其能够有权限连接新master.

mysql> stop slave;
mysql> reset master;
mysql> grant replication slave on *.* to 'admin'@'%' identified by 'JKcloud123';

3.查看新master状态,看到以下状态说明切换成功

mysql> show  processlist\G
*************************** 1. row ***************************Id: 4User: rootHost: localhostdb: NULL
Command: QueryTime: 0State: NULLInfo: show  processlist
*************************** 2. row ***************************Id: 7User: replHost: 192.168.0.100:60235db: NULL
Command: Binlog DumpTime: 184State: Master has sent all binlog to slave; waiting for binlog to be updatedInfo: NULL
2 rows in set (0.00 sec)

4.按照二中的方法将旧master设置为slave.

5.为了避免新master重启后变成slave,删除新master上的master.info和relay-log.info文件。

mysql主从配置流程相关推荐

  1. docker mysql.sock,Docker mysql主从配置

    Docker mysql主从配置 一:Mysql基于Docker的主从复制搭建 1:安装docker,安装步骤可见我之前的文章:Docker-常用基建的安装与部署 docker ps 命令查询当前的容 ...

  2. Mysql主从配置,实现读写分离

    大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...

  3. MySql(18)——Linux MySQL主从配置

    MySQL 主从配置 Author:xushuyi 参照技术:http://www.cnblogs.com/kevingrace/p/6256603.html 1. 主从数据库 1.主库:192.16 ...

  4. mysql+phpmyadmin配置流程

    mysql+phpmyadmin配置流程:   环境:Apache+php5+mysql5   下载包:phpMyAdmin-2.11.9.4-all-languages-utf-8-only.tar ...

  5. mysql主从配置 简书_Mysql主从配置,实现读写分离-Go语言中文社区

    转载:https://www.cnblogs.com/alvin_xp/p/4162249.html 大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层 ...

  6. mysql主从配置访问_Mysql主从配置,实现读写分离

    大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...

  7. mysql主从配置对解决并发有用_MySQL主从配置,读写分离

    大型网站为了缓解大量的并发访问,要网站实现分布式负载均衡.但是数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢失的话,后果不堪设想.这时 ...

  8. Windows下MySql主从配置实战教程

    Windows下MySql主从配置实战教程 MySql的主从配置教程 主库MySql的安装 1.MySQL的下载 2.MySQL配置文件的编写 3.初始化数据库 4.安装服务 5.启动MySql 6. ...

  9. windows中MySQL主从配置【第一篇】

    前言:         windows系统配置MySQL主从复制,系统中需要安装两个MySQL服务.我本地用的是集成环境,集成环境已经有一个MySQL服务,那么就需要自己在单独下载安装一个MySQL服 ...

最新文章

  1. 安装和使用Smokeping(二)
  2. Eclipse开发C/C++之使用技巧小结,写给新手
  3. 计算机网络与综合布线系统设计,【方案】某医院计算机网络综合布线系统设计...
  4. 数据结构的简单理解(4)
  5. 使用Typescript和React的最佳实践
  6. Andorid AlertDialog 点击后自动消失_为何孙悟空成佛后,金箍儿就会自动消失?金箍儿究竟代表什么...
  7. 撤销工作表保护原密码_批量解除工作表保护,和批量执行保护一样简单
  8. android9 三星 港版,【极光ROM】-【三星S20+(国行/港版/台版/韩版/美版) G986X-高通865】-【V9.0 Android-R-UB6】...
  9. 玛咖新品牌 卡皇玛卡4月上市
  10. 计算机组装与维护公开课,计算机组装与维护公开课教案
  11. php微信公众号群发,php实现微信公众号无限群发,php信公众群发
  12. 计算机如何添加gust用户,win7系统如何创建安全的Guest账户
  13. 按键精灵抓取不到的问题
  14. wxpython 优秀的界面_WxPython实现无边框界面
  15. 追光者计算机 音乐,追光者歌曲
  16. C++ 高效编程:pass-by-value(值传递)与pass-by-reference(引用传递)
  17. SHP转换为SLPK
  18. C# 获取字符串字节长度
  19. Ultimaker简介
  20. Flutter从0到1实现高性能、多功能的富文本编辑器(模块分析篇)

热门文章

  1. 彻底剖析激光-视觉-IMU-GPS融合SLAM算法:理论推导、代码讲解和实战
  2. 谷歌最新论文:手机端的实时3-D目标检测
  3. SpringBoot 自动解析参数:HandlerMethodArgumentResolver
  4. antd table column 列表渲染
  5. livechart 只显示 y 值_基于Python语言的SEGY格式地震数据读取与显示编程
  6. 远程挂载 NFS 共享目录引发死机问题
  7. R EnhancedVolcano 绘制火山图
  8. 高影响力期刊iMeta扬帆起航!第一篇文章已上线!
  9. ISME:水库蓝藻影响真核浮游生物的群落演替和物种共存
  10. SBB:长期施肥影响土壤固氮菌的群落装配过程