1. 环境

操作系统

CentOS-7

MySQL

mysql-5.7

三台虚拟机

192.168.33.13      master

192.168.33.12      slave

192.168.33.11      slave

2.master(192.168.33.13)节点配置

配置文件开启binlog

未配置之前检查,log_bin是OFF状态

mysql> show variables like '%log_bin%';

+---------------------------------+-------+

| Variable_name | Value |

+---------------------------------+-------+

| log_bin | OFF |

| log_bin_basename | |

| log_bin_index | |

| log_bin_trust_function_creators | OFF |

| log_bin_use_v1_row_events | OFF |

| sql_log_bin | ON |

+---------------------------------+-------+

6 rows in set (0.01 sec)

#这是我mysql安装的位置

[root@localhost mysql]& pwd

/usr/local/mysql

vim /etc/my.cnf文件

//增加下面三行,我让log-bin指向我的mysql安装位置

server-id=1

binlog-format=ROW

log-bin=/usr/local/mysql/mysql-bin

重启mysql

[root@localhost mysql]& service mysqld restart

再次检查,log_bin是ON状态

mysql> show variables like '%log_bin%';

+---------------------------------+----------------------------------+

| Variable_name | Value |

+---------------------------------+----------------------------------+

| log_bin | ON |

| log_bin_basename | /usr/local/mysql/mysql-bin |

| log_bin_index | /usr/local/mysql/mysql-bin.index |

| log_bin_trust_function_creators | OFF |

| log_bin_use_v1_row_events | OFF |

| sql_log_bin | ON |

+---------------------------------+----------------------------------+

6 rows in set (0.00 sec)

并且mysql安装目录会生成以下文件

log-bin

给slave创建使用的用户

mysql> CREATE USER 'repl'@'192.168.33.%' IDENTIFIED BY '123456';

Query OK, 0 rows affected (0.00 sec)

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.33.%';

Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.00 sec)

注:

drop user 'repl'@'192.168.33.12'; //删除user用户语句

查看master状态,获取binlog名字和position。记住file名字和position,后面会用到。

这个时候master不要发生写操作,否则position和file可能会变化。

mysql>

mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000001 | 761 | | | |

+------------------+----------+--------------+------------------+-------------------+

1 row in set (0.00 sec)

mysql>

3.salve(192.168.33.12和192.168.33.11)节点配置

vim /etc/my.cnf文件

server-id=2

binlog-format=ROW

log-bin=/usr/local/mysql/mysql-bin

重启mysql

[root@localhost mysql]& service mysqld restart

开启主从同步。file和pos是从主节点获取的

mysql> change master to master_host='192.168.33.13',

master_user='repl',

master_password='123456',

master_log_file='mysql-bin.000001',

master_log_pos=761;

查看从节点状态。注意,主从同步成功的标志:IO线程和SQL线程都是成功运行的:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

mysql> start slave;

Query OK, 0 rows affected (0.00 sec)

mysql>

mysql>

mysql> show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.33.13

Master_User: repl

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000001

Read_Master_Log_Pos: 761

Relay_Log_File: localhost-relay-bin.000002

Relay_Log_Pos: 320

Relay_Master_Log_File: mysql-bin.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

1 row in set (0.00 sec)

另一个节点同样操作,只需要将/etc/my.cnf文件中的server-id修改以下即可

现在可以在master节点上面做任意对于库表的修改操作,slave会自动同步。

不要直接操作slave。

如果IO线程not running:

stop slave;

SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

start slave;

show slave status\G

mysql主从同步完成标志,centos7 mysql 主从复制相关推荐

  1. 项目性能优化(MySQL读写分离、MySQL主从同步、Django实现MySQL读写分离)

    当项目中数据库表越来越多,数据量也逐渐增多时,需要做数据库的安全和性能的优化.对于数据库的优化,可以选择使用MySQL读写分离实现. 1.MySQL主从同步 1.主从同步机制 1.1.主从同步介绍和优 ...

  2. mysql主从同步简单原理_MYSQL简单主从复制原理及实现

    mysql主从复制原理: Master会对数据库产生修改的语句记录到二进制日志中,在Slave中会有一个线程(IO thread)会向Master请求二进制日志中发生的事件,Master通过binlo ...

  3. mysql 主从同步不一致_为什么mysql会经常出现主从同步不一致的情况

    1. MySQL数据库主从同步延迟原理. 答:谈到MySQL数据库主从同步延迟原理,得从mysql的数据库主从复制原理说起,mysql的主从复制都是单线程的操作,主库对所有DDL和 DML产生binl ...

  4. MySQL 主从同步延迟的原因及解决办法

    首页 博客 专栏·视频 下载 论坛 问答 代码 直播 能力认证 高校 会员中心 收藏 动态 消息 创作中心 MySQL 主从同步延迟的原因及解决办法 hao_yunfeng 2018-09-04 23 ...

  5. MYSQL主从同步的作用

    一.半同步复制原理介绍 1. 优点 当事务返回客户端成功后,则日志一定在至少两台主机上存在. MySQL在加载并开启Semi-sync插件后,每一个事务需等待备库接收日志后才返回给客户端.如果做的是小 ...

  6. mysql主从同步默认延迟_减少mysql主从数据同步延迟问题的详解

    基于局域网的master/slave机制在通常情况下已经可以满足'实时'备份的要求了.如果延迟比较大,就先确认以下几个因素: 1. 网络延迟 2. master负载 3. slave负载 一般的做法是 ...

  7. centos7 mysql主从同步

    centos7 mysql主从同步 一.准备两个mysql服务并修改配置文件 1.总体配置思路 数据库ID号, 为1时表示为Master,其中master_id必须为1到232–1之间的一个正整数值, ...

  8. mysql主从复制mmm_MMM+MYSQL主从同步

    1.安装mysql依赖包 2.安装mysql 3.修改配置文件DB1,DB2和DB3 BD3只需要修改 server-id  =3即可 4.配置同步 配置主DB1,从DB2和DB3 配置DB2主,DB ...

  9. MySQL主从同步问题集

    http://blog.chinaunix.net/uid-8786588-id-3771613.html 在InnoDB引擎下发现,Mysql的主从热备存在数据不一致的问题,一些数据没有成功同步到备 ...

最新文章

  1. DCF模型里面的括号计算方法
  2. 【Python】这10个Python性能调优的小技巧,你知道几个?
  3. mysql 标识符规则_MySQL 标识符到底区分大小写么——官方文档告诉你
  4. Docker+Jenkins+Gitlab+Django应用部署实践
  5. java如何对list进行排序_java中如何对list进行排序
  6. oracle display set,Check if the DISPLAY variable is set
  7. 2020年Web前端技术的三大趋势(干货)
  8. 思科全球云指数:2010-2015预测报告
  9. 北航教授王田苗:中国机器人的发展机遇与挑战是什么?
  10. kb2919355无法安装
  11. LoadRunner11完美破解
  12. 先进核反应堆 ——新能源概论结课作业
  13. SQL查询时间段方法
  14. STM32 SWD 只能下载一次的问题
  15. 操作系统习题(有一个具有两道作业的批处理系统)
  16. 浅析image,imagesc,imshow的用法
  17. [转载] Java是剑客-飘逸;.NET是刀客-霸道 (一)
  18. 引入uni-app组件时报错:文件查找失败:‘@/compents/uni-popup.vue‘
  19. 在linux中播放mp3文件格式,如何在Ubuntu中播放MP3
  20. 2021.4.22 易协同访客数据

热门文章

  1. 点到指定Bezier曲线的最短距离
  2. 计算机术语表达祝福,祝福新人的唯美句子
  3. 如何在opencv中实现不同程度的锐化
  4. OPPO Watch敲门IoT
  5. 【论文整理】Interactive Segmentation
  6. 如何在Excel中添加自定义函数(以计算AUC为例)
  7. Python学习笔记|二.Python安装教程
  8. python和java哪个更好就业_python和java哪个好就业
  9. pr基本技巧及相关教程
  10. 给大家推荐几篇技术文章