MySQL-主从复制 - 指南
MySQL-主从复制
- 一、工作原理
- 二、配置步骤
- 1. 主库配置
- 2. 从库配置
- 3. 测试
一、工作原理
master:主服务器
slave:从服务器
- 首先在master上开启二进制日志
- master上数据发生变化,进行DML操作的时候,会产生二进制日志
- master上的dump线程会通知slave上的IO线程来拿二进制日志,IO线程拿到二进制日志后会写到slave上的中继日志,重演二进制日志里的操作,从而达到slave和master上的数据一模一样,实现数据的一致性
二、配置步骤
准备两台服务器
[root@master ~]# mysql --version
mysql Ver 8.0.43 for Linux on x86_64 (MySQL Community Server - GPL)
1. 主库配置
主服务器上开启二进制日志,server_id=1
[root@master ~]# tail -2 /etc/my.cnf
log_bin=/var/lib/mysql/mysql_bin.log
server_id=1
# 从服务器上也可以开启二进制日志,server_id=2
[root@slave ~]# tail -2 /etc/my.cnf
log_bin=/var/lib/mysql/mysql_bin.log
server_id=2
# 重启服务
systemctl restart mysqld
新建一个授权用户,给slave来复制二进制日志
MySQL 8.0 默认的 caching_sha2_password 认证插件在非 SSL 连接下要求 “安全连接”,而当前从库未配置 SSL,会导致认证失败
-> 兼容性方案:改用 mysql_native_password 插件
mysql> CREATE USER 'sc'@'192.168.168.%' IDENTIFIED WITH mysql_native_password BY 'passwd';
Query OK, 0 rows affected (0.02 sec)
mysql> GRANT REPLICATION SLAVE ON *.* TO 'sc'@'192.168.168.%';
Query OK, 0 rows affected (0.00 sec)
# 刷新权限
mysql> FLUSH PRIVILEGES;
查看是否开启二进制日志,主库状态
mysql> show variables like "log_bin";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | ON |
+---------------+-------+
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql_bin.000001 | 1335 | | | |
+------------------+----------+--------------+------------------+-------------------+
2. 从库配置
mysql> stop slave;
# 同步两台服务器的基础数据
[root@master ~]# mysqldump -uroot -p --all-databases >all_db.SQL
Enter password:
[root@master ~]# scp all_db.SQL root@192.168.168.135:/root
all_db.SQL 100% 1256KB 63.5MB/s 00:00
[root@slave ~]# mysql -uroot -p <all_db.SQL
Enter password:
# 配置主库信息
mysql> CHANGE MASTER TO
-> MASTER_HOST = '192.168.168.134',
-> MASTER_USER = 'sc',
-> MASTER_PASSWORD = 'passwd',
-> MASTER_LOG_FILE = 'mysql_bin.000001',
-> MASTER_LOG_POS = 1335;
mysql> start slave;
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for source to send event
Master_Host: 192.168.168.134
Master_User: sc
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql_bin.000001
Read_Master_Log_Pos: 1335
Relay_Log_File: slave-relay-bin.000002
Relay_Log_Pos: 785
Relay_Master_Log_File: mysql_bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
# 若 Slave_IO_Running 和 Slave_SQL_Running 均为 Yes,则表示主从复制配置成功
3. 测试
主上面操作
mysql> create table test1(age int);
Query OK, 0 rows affected (0.01 sec)
mysql> insert into test1 values(10);
Query OK, 1 row affected (0.01 sec)
从上面查看
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| test1 |
+----------------+
mysql> select * from test1;
+------+
| age |
+------+
| 10 |
+------+
slave是一直连接到master的,传输层使用tcp
[root@master ~]# netstat -anplut |grep ES
tcp 0 0 192.168.168.134:47374 192.168.168.135:22 ESTABLISHED 4595/ssh
tcp 0 52 192.168.168.134:22 192.168.168.1:53773 ESTABLISHED 1380/sshd: root [pr
tcp 0 0 192.168.168.134:22 192.168.168.1:53771 ESTABLISHED 1336/sshd: root [pr
tcp6 0 0 192.168.168.134:3306 192.168.168.135:37154 ESTABLISHED 2600/mysqld
udp 0 0 192.168.168.134:68 192.168.168.254:67 ESTABLISHED 760/NetworkManager
查看主上所有活跃连接
mysql> show processlist;
+----+-----------------+-----------------------+------+-------------+------+-----------------------------------------------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-----------------+-----------------------+------+-------------+------+-----------------------------------------------------------------+------------------+
| 5 | event_scheduler | localhost | NULL | Daemon | 3491 | Waiting on empty queue | NULL |
| 8 | root | localhost | test | Query | 0 | init | show processlist |
| 23 | sc | 192.168.168.135:37154 | NULL | Binlog Dump | 312 | Source has sent all binlog to replica; waiting for more updates | NULL |
+----+-----------------+-----------------------+------+-------------+------+-----------------------------------------------------------------+------------------+
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/946463.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
玩转单片机之智能车小露——数字与字符串的转换与打印
在 玩转单片机之智能车小露——通过UART为单片机增加TTY终端 中我们在TTYEchoNumber中使用 printf 函数将数字输出到串口。其实数字很多时候都不是以数的形式表示的,几乎所有的输入和显示环节数字都是以字符串的形式来…
数据采集作业1 102302111 海米沙
作业一
1)用requests和BeautifulSoup库方法定向爬取给定网址(http://www.shanghairanking.cn/rankings/bcur/2020 )的数据,屏幕打印爬取的大学排名信息的实验
输出信息:
排名 学校名称 省市 学校类型 总分
…
ABC429(C,D,E)
C
思路:容斥原理
开桶统计元素个数
求$ A_i,A_j,A_k (i \lt j \lt k)$ 其中两个相等的元组数量:
若\(A_i\)有\(k\)个\(A_i\)和其他一个相等:\(ans = (k-1) \times (n-i-(k-1))\)
其他两个相等:先算出所有两两相等的…
列表,集合,字典的增、删、查、改方法对比
在Python中,列表(List)、集合(Set)和字典(Dict)是三种常用的数据结构,它们在增、删、查、改操作上各有特点。以下是它们的详细对比:1. 列表(List)
列表是有序的可变序列,支持重复元素。操作
方法
示例
说明…
linux磁盘管理-RAID介绍 - 详解
linux磁盘管理-RAID介绍 - 详解2025-10-25 21:54
tlnshuju
阅读(0)
评论(0) 收藏
举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !importa…
详细介绍:语义网络(Semantic Net)对人工智能中自然语言处理的深层语义分析的影响与启示
pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …
2023.2.24 操作系统期末考试回忆 山科 山东科技大学
5个简答题 1个6分30分操作系统的四个基本特征是什么?最基本特征是什么比较说明进程和程序的区别有哪些?列举几个操作系统中的时间换空间 空间换时间的例子SPOOLing 的组成,工作过程,以共享打印机为例某文件系统为一…
线段上随机取n个点的最大距离期望
Problem
在长为 $ a $ 的线段上独立地选取 $ n $ 个点($ n \geq 2 $),记相距最远的两点的距离为 $ X $,求 $ E(X) $。方法一:定义求解
记 $ A $ 为 $ X = t \(,\) B $ 为剩余 $ n-2 $ 个点在最远的两点间,则有
…
MusicFree 音乐
MusicFree是由大佬猫头猫开发的一款免费、开源的本地音乐播放器,同时支持Android、Windows、MacOS、Linux这几个客户端,很强大!MusicFree安装后就是一个纯粹的本地音乐播放器,但可以通过配置「插件」地址实现定制化…
P10老板一句‘搞不定就P0’,15分钟我用Arthas捞回1000万资损 - 指南
P10老板一句‘搞不定就P0’,15分钟我用Arthas捞回1000万资损 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &qu…
RuoYi-Cloud-Plus 数据权限实现原理解析
RuoYi-Cloud-Plus 数据权限实现原理解析
什么是数据权限?
数据权限是控制用户能够访问哪些数据的权限机制。在实际业务场景中,我们经常遇到这样的需求:普通员工只能查看自己创建的数据
部门经理可以查看本部门所有员…
详细介绍:JavaScript学习笔记(十五):ES6模板字符串使用指南
pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …
Python毕业设计实例-基于python养老社区的查询预约架构(源码+LW+部署文档+全bao+远程调试+代码讲解等)
Python毕业设计实例-基于python养老社区的查询预约架构(源码+LW+部署文档+全bao+远程调试+代码讲解等)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: blo…
第5天(中等题 滑动窗口、逆向思维)
打卡第五天
两道中等题题1423.可获得的最大点数思路: n 表示数组总数,先算出数组总和,用滑动窗口选出剩下连续(n-k)个数的最小和,用总和-剩余数最小和,即得拿走数的最大值.(逆向思维,正难则反)
耗时≈一小时 明天继续
Meet in the middle 学习笔记
由于蒟蒻在模拟赛写 DFS 挂掉了,所以来学 Meet in the middle 。
「引入」
Meet in the middle 算法没有正式译名,常见的翻译为「折半搜索」、「双向搜索」或「中途相遇」,以下称折半搜索。
它适用于输入数据较小,…
[HZOI] CSP-S模拟38 赛后总结
不予置评[HZOI] CSP-S模拟38 赛后总结
不予置评
T1:最小生成树(tree)
#include<bits/stdc++.h>
#define lid (id << 1)
#define rid (id << 1 | 1)
#define Blue_Archive return 0
#define int lo…
深入解析:港大和字节携手打造WorldWeaver:以统一建模方案整合感知条件,为长视频生成领域带来质量与一致性双重飞跃。
深入解析:港大和字节携手打造WorldWeaver:以统一建模方案整合感知条件,为长视频生成领域带来质量与一致性双重飞跃。pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !importa…