原理:将主结点中binlog日志内容,实时传送到从结点relay log中,再由SQL线程解析执行改变从结点中的数据,达到主从数据一致;

应用场景:读写分离、数据备份等;

环境介绍:

MySQL版本:8.0.28 MySQL Community Server - GPL

操作系统:CentOS 7

1、规划

主机 IP 类型
mysql8_1 172.17.0.12
mysql8_2 172.17.0.13

2、安装MySQL,主从上都执行如下2命令,等待完成即可;

主、从:

rpm -ivh https://repo.mysql.com//mysql80-community-release-el7-5.noarch.rpm
yum install -y mysql-community-server-8.0.28

3、配置my.cnf,在[mysqld]下添加如下配置,数字必须不同。

主:

server-id = 1

从:

server-id = 2

4、启动数据库,主从都执行;

主、从:

systemctl start mysql

5、添加同步账号并授权,此处用户密码为slave_sync1/123456;

主:

mysql> CREATE USER 'slave_sync1'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.03 sec)mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_sync1'@'%';
Query OK, 0 rows affected (0.00 sec)

6、配置同步;

主:

mysql> show master status;
+---------------+----------+--------------+------------------+-------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000002 |      674 |              |                  |                   |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

主结点中当前binlog文件及其位置

从:

mysql> CHANGE MASTER TO MASTER_HOST='172.17.0.12', MASTER_USER='slave_sync1', MASTER_PASSWORD='123456', MASTER_LOG_FILE='binlog.000002', MASTER_LOG_POS=674;
Query OK, 0 rows affected, 8 warnings (0.06 sec)mysql> start slave;
Query OK, 0 rows affected, 1 warning (0.02 sec)

CHANGE MASTER命令中均来自“主”,IP、用户、密码为自定义;

MASTER_LOG_FILE='binlog.000002' # 同步从哪个binlog文件开始同步,见上方“show master status;”中内容;

MASTER_LOG_POS=674 # 表示从binlog文件什么位置开始同步,见上方“show master status;”;

7、检查同步状态,Slave_IO_Running和Slave_SQL_Running必须都是Yes,才正常;

从:

mysql> show slave status\G
*************************** 1. row ***************************Slave_IO_State: Waiting for source to send eventMaster_Host: 172.17.0.12Master_User: slave_sync1Master_Port: 3306Connect_Retry: 60Master_Log_File: binlog.000002Read_Master_Log_Pos: 674Relay_Log_File: mysql8_2-relay-bin.000002Relay_Log_Pos: 323Relay_Master_Log_File: binlog.000002Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB: Replicate_Ignore_DB: 

8、验证主从同步功能,在主结点建库建表,从结点均能查询到,如下;

主:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.06 sec)mysql> create database test_sync;
Query OK, 1 row affected (0.02 sec)mysql> use test_sync
Database changedmysql> create table books(id int, name varchar(50));
Query OK, 0 rows affected (0.02 sec)mysql> insert into books values(1, "MySQL");
Query OK, 1 row affected (0.03 sec)mysql> insert into books values(2, "Java");
Query OK, 1 row affected (0.01 sec)mysql> insert into books values(3, "C++");
Query OK, 1 row affected (0.00 sec)mysql> show tables;
+---------------------+
| Tables_in_test_sync |
+---------------------+
| books               |
+---------------------+
1 row in set (0.00 sec)mysql> select * from books;
+------+-------+
| id   | name  |
+------+-------+
|    1 | MySQL |
|    2 | Java  |
|    3 | C++   |
+------+-------+
3 rows in set (0.00 sec)

从:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test_sync          |
+--------------------+
5 rows in set (0.01 sec)mysql> use test_sync;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> show tables;
+---------------------+
| Tables_in_test_sync |
+---------------------+
| books               |
+---------------------+
1 row in set (0.00 sec)mysql> select * from books;
+------+-------+
| id   | name  |
+------+-------+
|    1 | MySQL |
|    2 | Java  |
|    3 | C++   |
+------+-------+
3 rows in set (0.00 sec)

MySQL搭建主从(一主一从)相关推荐

  1. MyCat学习:使用MySQL搭建主从复制(一主一从模式)

    首先使用MyCat登录需要一个前提,那就是有MySQL的主从复制 开始搭建MySQL主从复制(一主一从) 一.配置文件修改 主机配置文件修改 server-id=1 # 定义服务器唯一ID log-b ...

  2. 【Linux内容】Linux系统中配置MySQL搭建主从数据库

    1. 搭建主从数据库前期工作 确认主从数据库服务已经启动并且可以正常登陆.已经开放MySQL数据库访问端口号 2. 配置MySQL主库 3. 配置MySQL从库

  3. mysql搭建主从的目的_mysql搭建主从

    mysql主从搭建 搭建mysql主从的目的是让一台mysql作为主数据库,一台或多台mysql作为从数据库,主数据库只负责数据的写入,从数据库只负责数据的查询(读写分离),且主从数据库是实时同步的, ...

  4. Mysql搭建主从服务器

    一,Mysql主从同步 1, 环境        mysql51:192.168.4.51    master                       mysql52:192.168.4.52   ...

  5. mysql搭建主从结点

    搭建mysql主从节点 mysql主从构架可以很好的支持基于mysql数据库的读写分离,根据以下内容,可以搭建一个mysql的主从复制构架. 1, 根据文档,搭建mysql环境,如果已经有mysql, ...

  6. Sharding-jdbc教程:Mysql数据库主从搭建

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 这是系列文章Sharding-jdbc文章的第一篇,本篇文章主要讲述如何搭建Mysql的主从.搭 ...

  7. linux mysql进阶_mysql进阶学习二之搭建主从

    前面说了主从复制的原理,现在我们搭建主从结构 1. 提前准备 我准备了两台主机,主节点是远程的centos7,从节点是本机windows 主从复制的原理在上一篇已经说了:主节点中mysql创建一个用户 ...

  8. MySQL(17) 通过Docker搭建主从同步

    一.前言 本文将基于Docker部署2台MySQL服务实现主从同步,即主master用于写(增删改),从slave用来读(查) 二.Docker搭建MySQL实现主从同步 1.master(主)配置 ...

  9. 使用Docker搭建主从数据库(MySQL)

    很多人对主从数据库有一个误区,把多个MySQL搭建在同一个服务器上,性能提升是不是很有限?这个理念是错误的,数据库的性能瓶颈主要是在IO和CPU负载过高,在同一台服务器运行多个数据库,能带来更低的延迟 ...

  10. mysql gtid 主从_基于GTID搭建主从MySQL

    基于gtid搭建主从MySQL 一.GTID的使用 想让主从之间使用gtid的方式同步数据,需要我们在配置文件中开启mysql对gtid相关的配置信息 找到my.cnf ,在mysqld模块中加入如下 ...

最新文章

  1. Jmeter入门3 http请求—content-type与参数
  2. 『设计模式』一句话教你分清楚UML组合聚合和联系!
  3. 改善Java EE生产支持技能的8种方法
  4. MySQL 8.0.22执行器源码分析HashJoin —— BuildHashTable函数细节步骤
  5. 第十章数据库恢复技术
  6. android.mk 强制编译,android.mk文件的编译
  7. 第六章 PCB 的 DRC 检查、拼版设计及资料输出
  8. 【分享】使用快递鸟接入圆通电子面单详解
  9. U盘中文件夹变为应用程序exe不能打开怎样修复
  10. Struts2 内部是如何工作的
  11. compare比对工具
  12. nacos实现服务注册与两种消费方式
  13. Nginx开启GZIP压缩,提升前端访问速度
  14. 状态模式、有限状态机 Unity版本实现
  15. Linux下GUI开发:GTK+ 2.0 + anjuta + glade
  16. mongodb-exporter
  17. 未来会有哪些黑科技推动区块链技术的发展
  18. 火山PC文件目录的创建复制移动等操作
  19. 手把手教你学51单片机——函数进阶与按键
  20. 药检实验室如何规划设计

热门文章

  1. GTK真不容易,资料少,学得人也少!
  2. FPGA 独立按键消抖
  3. DPDK- flow Metering
  4. linux+mmap父子通信_Linux 系统开发5 进程间通信 pipe() fifo() mmap()
  5. 关于qt+vs2019报错的奇葩问题,无法定位程序输入点
  6. Entry模拟对输入的密码进行验证是否符合规范
  7. mysql 5.7.16 忘记root 密码 如何修改root密码
  8. 1.2 安装 docker 容器并配置镜像加速器
  9. 西电计算机考研数学,西安电子科技大学21考研数学高分上岸学长经验分享
  10. SAP 下载CSV文件到本机(SAP_CONVERT_TO_TEX_FORMAT)(示例代码) <转载>