MySQL搭建主从(一主一从)
原理:将主结点中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搭建主从(一主一从)相关推荐
- MyCat学习:使用MySQL搭建主从复制(一主一从模式)
首先使用MyCat登录需要一个前提,那就是有MySQL的主从复制 开始搭建MySQL主从复制(一主一从) 一.配置文件修改 主机配置文件修改 server-id=1 # 定义服务器唯一ID log-b ...
- 【Linux内容】Linux系统中配置MySQL搭建主从数据库
1. 搭建主从数据库前期工作 确认主从数据库服务已经启动并且可以正常登陆.已经开放MySQL数据库访问端口号 2. 配置MySQL主库 3. 配置MySQL从库
- mysql搭建主从的目的_mysql搭建主从
mysql主从搭建 搭建mysql主从的目的是让一台mysql作为主数据库,一台或多台mysql作为从数据库,主数据库只负责数据的写入,从数据库只负责数据的查询(读写分离),且主从数据库是实时同步的, ...
- Mysql搭建主从服务器
一,Mysql主从同步 1, 环境 mysql51:192.168.4.51 master mysql52:192.168.4.52 ...
- mysql搭建主从结点
搭建mysql主从节点 mysql主从构架可以很好的支持基于mysql数据库的读写分离,根据以下内容,可以搭建一个mysql的主从复制构架. 1, 根据文档,搭建mysql环境,如果已经有mysql, ...
- Sharding-jdbc教程:Mysql数据库主从搭建
点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 这是系列文章Sharding-jdbc文章的第一篇,本篇文章主要讲述如何搭建Mysql的主从.搭 ...
- linux mysql进阶_mysql进阶学习二之搭建主从
前面说了主从复制的原理,现在我们搭建主从结构 1. 提前准备 我准备了两台主机,主节点是远程的centos7,从节点是本机windows 主从复制的原理在上一篇已经说了:主节点中mysql创建一个用户 ...
- MySQL(17) 通过Docker搭建主从同步
一.前言 本文将基于Docker部署2台MySQL服务实现主从同步,即主master用于写(增删改),从slave用来读(查) 二.Docker搭建MySQL实现主从同步 1.master(主)配置 ...
- 使用Docker搭建主从数据库(MySQL)
很多人对主从数据库有一个误区,把多个MySQL搭建在同一个服务器上,性能提升是不是很有限?这个理念是错误的,数据库的性能瓶颈主要是在IO和CPU负载过高,在同一台服务器运行多个数据库,能带来更低的延迟 ...
- mysql gtid 主从_基于GTID搭建主从MySQL
基于gtid搭建主从MySQL 一.GTID的使用 想让主从之间使用gtid的方式同步数据,需要我们在配置文件中开启mysql对gtid相关的配置信息 找到my.cnf ,在mysqld模块中加入如下 ...
最新文章
- Jmeter入门3 http请求—content-type与参数
- 『设计模式』一句话教你分清楚UML组合聚合和联系!
- 改善Java EE生产支持技能的8种方法
- MySQL 8.0.22执行器源码分析HashJoin —— BuildHashTable函数细节步骤
- 第十章数据库恢复技术
- android.mk 强制编译,android.mk文件的编译
- 第六章 PCB 的 DRC 检查、拼版设计及资料输出
- 【分享】使用快递鸟接入圆通电子面单详解
- U盘中文件夹变为应用程序exe不能打开怎样修复
- Struts2 内部是如何工作的
- compare比对工具
- nacos实现服务注册与两种消费方式
- Nginx开启GZIP压缩,提升前端访问速度
- 状态模式、有限状态机 Unity版本实现
- Linux下GUI开发:GTK+ 2.0 + anjuta + glade
- mongodb-exporter
- 未来会有哪些黑科技推动区块链技术的发展
- 火山PC文件目录的创建复制移动等操作
- 手把手教你学51单片机——函数进阶与按键
- 药检实验室如何规划设计
热门文章
- GTK真不容易,资料少,学得人也少!
- FPGA 独立按键消抖
- DPDK- flow Metering
- linux+mmap父子通信_Linux 系统开发5 进程间通信 pipe() fifo() mmap()
- 关于qt+vs2019报错的奇葩问题,无法定位程序输入点
- Entry模拟对输入的密码进行验证是否符合规范
- mysql 5.7.16 忘记root 密码 如何修改root密码
- 1.2 安装 docker 容器并配置镜像加速器
- 西电计算机考研数学,西安电子科技大学21考研数学高分上岸学长经验分享
- SAP 下载CSV文件到本机(SAP_CONVERT_TO_TEX_FORMAT)(示例代码) <转载>