mysql主从复制搭建(一主一从)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- MySQL复制过程分为三部:
- 一、准备工作
- 二、配置==>主库Master
- 三、配置==>从库Slave
- Slave_IO_Running: Yes
- Slave_SQL_Running: Yes
- 四、测试
- 至此,主库分离成功实现
前言
介绍
MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的二进制日志功能。就是一台或多台MySQL数据库(slave,即从库)从另一台MySQL数据库(master,即主库)进行日志的复制然后解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。MySQL主从复制是MySQL数据库自带功能,无需借助第三方工具
MySQL复制过程分为三部:
==> master将改变记录到二进制日志(binary log)
==> slave将master的binary log拷贝到它的中继日志(relay log)
==> slave重做中继日志中的事件,将改变应用到自己的数据库中
一、准备工作
1、提前准备好两台服务器,分别安装Mysql
==> 主库Master 192.168.100.66
==> 从库Slave 192.168.100.67
2、使用克隆弄出另一台服务器的注意事项
博主两台linux服务器都是使用VMware虚拟机搭建的,为了避免重装mysql的麻烦,另外一台linux服务器是克隆出来的,克隆之后必须修改Mac地址,ip,UUID,还有mysql的UUID。
二、配置==>主库Master
1、在/etc/hosts里添加两侧主机的IP和主机名(选做)
例
192.168.100.66 mysql57
192.168.100.67 mysql57b
2、 先让所有的MYSQL数据库的UUID保持不同
(如果你是直接复制的安装好MYSQL的虚拟机,那么每个虚拟机上搭载的MYSQL数据库UUID是一致的)
vi /data/mysql_data/auto.cnf
[auto]
server-uuid=f787ff18-b491-11eb-9910-080027c8eeff
如果大家发现所有的MYSQL的uuid都是一个,那么你就给他改一下
:
[auto]
server-uuid=f787ff18-b491-11eb-9910-080027c8eefa
3、主节点参数修改Mysql数据库的配置文件/etc/my.cnf
#MASTER-SLAVE
server-id = 1
binlog-do-db=hr
#binlog-do-db=
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
#expire_logs_days=7
参数说明:
server-id = 1 主节点的server-id,集群中每一台服务器的server-id都不允许相同
binlog-do-db=hr 你需要复制的库 hr
#binlog-do-db=test
binlog-ignore-db=mysql #不需要复制的库
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
#expire_logs_days=7 binlog日志过期天数设置
4、重新启动mysql数据库服务
servicer mysqld start
5、创建复制用户(主库)
GRANT ALL PRIVILEGES ON . TO ‘repl’@‘%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
三、配置==>从库Slave
1、从节点参数修改Mysql数据库的配置文件/etc/my.cnf
server-id = 2
read_only = 1
#super_read_only=1
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
master_info_repository=TABLE
relay_log_info_repository=TABLE
#relay_log_recovery=1
参数说明
server-id = 2
从服务器的server-id 不能和主服务器相同
read_only = 1
#super_read_only=1
设置从库只读状态,避免在从库上写操作,但该指令对超级管理员是无效的,mysql5.7增加了一个新的参数super_read_only,该参数使得超级管理员也无法进行写操作。但是super_read_only这个参数大部分都是关闭掉的
relay-log=slave-relay-bin
中转(中继)日志文件前缀名(base name) 也是默认在datadir目录下
relay-log-index=slave-relay-bin.index
中转(中继)日志后缀名,默认host_name-relay-bin.index,在datadir目录下。
master_info_repository=TABLE 把master.info(主从状态,配置信息)记录下来,默认记录到file里面,建议使用表记录
relay_log_info_repository=TABLE
realy_log_info_repository用来决定slave同步的位置信息记录在哪里,同样有两个参数。如果relay_log_info_repository=file,就会创建一个realy-log.info,如果relay_log_info_repository=table,就会创建mysql.slave_relay_info表来记录同步的位置信息。
#relay_log_recovery=1 #从机禁止写
为了让从库是crash safe的必须要设置relay_log_recovery=1,该参数的含义是:当从库发生崩溃或重启时,它会把那些未做完的中继日志删除,并向主库重新获取日志,再次产生中继日志的恢复,建议在从库上开启relay_log_recovery参数,默认是关闭的。当然了你为了从库得到更好的优化效果的话,请把它关掉
2、查看主库状态信息
show master status\G;
show master status;
mysql> show master status;
+-----------------+----------+--------------+-------------------------------------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------------+----------+--------------+-------------------------------------------------+-------------------+
| mysqlbin.000017 | 154 | hr | mysql,information_schema,performance_schema,sys | |
+-----------------+----------+--------------+-------------------------------------------------+-------------------+
3、登录Mysql数据库,配置将连接的主库信息
从库按照主库给出信息进行修改
change master to
master_host=‘192.168.100.66’,
master_port=3306,
master_user=‘repl’,
master_password=‘123456’,
master_log_file=‘mysqlbin.000017’,
master_log_pos=154;
注:里面的信息要写自己主库的信息,账号写自己创建的账号
4、查看从库信息状态
启动从库 进行测试
start slave;
stop slave;
show slave status \G;
show slave status \G;
*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 192.168.100.66Master_User: replMaster_Port: 3306Connect_Retry: 60Master_Log_File: mysqlbin.000017Read_Master_Log_Pos: 154Relay_Log_File: slave-relay-bin.000002Relay_Log_Pos: 319Relay_Master_Log_File: mysqlbin.000017Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB:Replicate_Ignore_DB:Replicate_Do_Table:Replicate_Ignore_Table:Replicate_Wild_Do_Table:Replicate_Wild_Ignore_Table:Last_Errno: 0Last_Error:Skip_Counter: 0Exec_Master_Log_Pos: 154Relay_Log_Space: 526Until_Condition: NoneUntil_Log_File:Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_SSL_CA_File:Master_SSL_CA_Path:Master_SSL_Cert:Master_SSL_Cipher:Master_SSL_Key:Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: NoLast_IO_Errno: 0Last_IO_Error:Last_SQL_Errno: 0Last_SQL_Error:Replicate_Ignore_Server_Ids:Master_Server_Id: 1Master_UUID: 497bc227-19c5-11ee-a978-080027b1fb7dMaster_Info_File: mysql.slave_master_infoSQL_Delay: 0SQL_Remaining_Delay: NULLSlave_SQL_Running_State: Slave has read all relay log; waiting for more updatesMaster_Retry_Count: 86400Master_Bind:Last_IO_Error_Timestamp:Last_SQL_Error_Timestamp:Master_SSL_Crl:Master_SSL_Crlpath:Retrieved_Gtid_Set:Executed_Gtid_Set:Auto_Position: 0Replicate_Rewrite_DB:Channel_Name:Master_TLS_Version:
1 row in set (0.00 sec)
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
状态显示yes正常搭建成功
如果你的虚拟机崩溃了恢复后导致无法同步,或者你多次配置从库的主库信息初始化阶段失败的话。
报错信息为:初始化信息失败
ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log
先执行
reset slave; 清空你之前的配置的从库信息
然后再重启从库
start slave;
重点说明的是:如果你是第一次配置主从复制集群的话,一般不会出现这个问题。
四、测试
主库和从库同步完成
至此,主库分离成功实现
相关文章:

mysql主从复制搭建(一主一从)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言MySQL复制过程分为三部: 一、准备工作二、配置>主库Master三、配置>从库SlaveSlave_IO_Running: YesSlave_SQL_Running: Yes 四、测试至此&am…...

什么是Liquid UI?
热门议题: 1、企业如何快速解决人员移动办公的需求,比如在苹果安卓手机,平板电脑,MAC登录SAP。2、企业如何解决用户经常抱怨的流程复杂,操作繁琐,难以使用等问题 公司介绍: Synactive,Inc. 是…...

非常详细的相机标定(六)(2维坐标点转为3维坐标点)
根据提取的相机的参数,2维坐标点转为3维坐标点,代码如下: import argparse from argparse import RawTextHelpFormatter import numpy as np import cv2# 寻找焦点 def cam_calib_find_corners(img, rlt_dir, col, row):# 灰度化图片&#x…...

云计算虚拟仿真实训平台
一、云计算虚拟仿真系统概述 云计算虚拟仿真系统是一种基于云计算技术和虚拟化技术的系统,用于实现各种仿真和模拟任务。它可以提供强大的计算能力和资源管理,为用户提供灵活、高效、可扩展的仿真环境。 该系统通常由一组服务器、网络和存储设备组成&am…...

计算机网络:网络字节序
目录 一、字节序1.字节序概念2.字节序的理解(1)大端模式存储数据(2)小端模式存储数据 二、网络字节序 一、字节序 1.字节序概念 字节序:内存中存储多字节数据的顺序。 难道存储数据还要看顺序吗? yes。内…...

2023国赛数学建模A题思路分析
文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 全国大学生数学建模…...

【Java】常见面试题:网络
目录 1. 为什么需要网络协议的分层?2. 【封装和分用】3. Socket套接字主要针对传输层协议划分为如下三类(了解)4. 简单说一下TCP和UDP的区别:5. TCP中的长短连接6. 应用层重点协议7. TCP可靠传输机制(三次握手四次挥手…...

TTS | VocGAN声码器训练自己的数据集
哈喽,今天给大家介绍的是如何使用VocGAN声码器训练自己的数据集。 原文 VocGAN: A High-Fidelity Real-time Vocoder with a Hierarchically-nested Adversarial Network 想要论文解读,请参考我的这篇文章~ 本博客主要包括以下内容: 目录…...
nuxt3--prisma配置
目录 一、初始化二、修改配置三、创建数据库表四、安装Prisma客户端五、查询数据库 一、初始化 npm install prisma typescript ts-node types/node --save-devts-node 用来执行main函数更新数据库 根据实际情况安装,如果不需要的话只需要安装prisma tsconfig.json…...

学习ts(一)数据类型(基础类型和任意类型)
运行 起步安装 npm install typescript -g 运行tsc index.ts生成对应的js文件,然后使用node index.js执行js文件 为了方便运行还可以安装插件,ts-node index.ts运行即可 npm i ts-node -g npm init -y npm i types/node -D基本数据类型 // 1.字符…...

Qt 之 QPushButton,信号与槽机制
文章目录 前言一、QPushButton二、信号与槽机制总结 前言 一、QPushButton 当我们开发基于Qt框架的图形用户界面(GUI)应用程序时,经常需要在界面上添加按钮来实现用户交互。Qt提供了一个名为 QPushButton 的类作为按钮控件的实现。QPushButt…...
MySQL面试题一
MySQL 索引使用有哪些注意事项呢? 可以从两个维度回答这个问题: 索引哪些情况会失效,索引不适合哪些场景 索引哪些情况会失效 查询条件包含or,会导致索引失效。隐式类型转换,会导致索引失效, 例如age字…...

【Java】2021 RoboCom 机器人开发者大赛-高职组(复赛)题解
7-8 人工智能打招呼 号称具有人工智能的机器人,至少应该能分辨出新人和老朋友,所以打招呼的时候应该能有所区别。本题就请你为这个人工智能机器人实现这个功能:当它遇到陌生人的时候,会说:“Hello X, how are you?”其…...
使用electron-vue获取文件夹的路径
使用electron-vue获取文件夹的路径 记录一次开发过程中遇到的bug,我们的项目中需要将vue项目打包为桌面应用软件,为此我们引入了electron框架,在这个过程中,我们需要获取到用户电脑上面文件夹的绝对路径,用这篇文章记…...
剑指Offer14-II.剪绳子II C++
1、题目描述 给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m - 1] 。请问 k[0]k[1]…*k[m - 1] 可能的最大乘积是多少?例如&am…...

2023企业微信0day漏洞复现以及处理意见
2023企业微信0day漏洞复现以及处理意见 一、 漏洞概述二、 影响版本三、 漏洞复现小龙POC检测脚本: 四、 整改意见 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#x…...

【IMX6ULL驱动开发学习】04.应用程序和驱动程序数据传输和交互的4种方式:非阻塞、阻塞、POLL、异步通知
一、数据传输 1.1 APP和驱动 APP和驱动之间的数据访问是不能通过直接访问对方的内存地址来操作的,这里涉及Linux系统中的MMU(内存管理单元)。在驱动程序中通过这两个函数来获得APP和传给APP数据: copy_to_usercopy_from_user …...
day-21 代码随想录算法训练营(19)二叉树part07
530.二叉搜索树的最小绝对差 思路一:二叉搜索树的中序遍历必为升序数组,加入数组后计算相邻两个数差值,即可求出最小绝对差 思路二:同样的思路,中序遍历,直接使用指针记录上一个节点,同时更新…...
【Vue3】依赖注入
provide 和 inject 是 Vue.js 中用于实现依赖注入的两个关联功能。它们允许你在祖先组件中提供数据,然后在子孙组件中注入这些数据,实现组件之间的数据共享和传递。 provide:provide 是一个选项,你可以在父组件中通过它来提供数据…...

Vue 引入 Element-UI 组件库
Element-UI 官网地址:https://element.eleme.cn/#/zh-CN 完整引入:会将全部组件打包到项目中,导致项目过大,首次加载时间过长。 下载 Element-UI 一、打开项目,安装 Element-UI 组件库。 使用命令: npm …...

照耀国产的星火,再度上新!
国产之光,星火闪耀 ⭐ 新时代的星火⭐ 多模态能力⭐ 图像生成与虚拟人视频生成⭐ 音频生成与OCR笔记收藏⭐ 助手模式更新⭐ 插件能力⭐ 代码能力⭐ 写在最后 ⭐ 新时代的星火 在这个快速变革的时代,人工智能正迅猛地催生着前所未有的革命。从医疗到金融…...
大语言模型LLM的一些点
LLM发展史 GPT模型是一种自然语言处理模型,使用Transformer来预测下一个单词的概率分布,通过训练在大型文本语料库上学习到的语言模式来生成自然语言文本。 GPT-1(117亿参数),GPT-1有一定的泛化能力。能够用于和监督任务无关的任务中。GPT-2(…...

leetcode810. 黑板异或游戏(博弈论 - java)
黑板异或游戏 lc 810 - 黑板异或游戏题目描述博弈论 动态规划 lc 810 - 黑板异或游戏 难度 - 困难 原题链接 - 黑板异或游戏 题目描述 黑板上写着一个非负整数数组 nums[i] 。 Alice 和 Bob 轮流从黑板上擦掉一个数字,Alice 先手。如果擦除一个数字后,剩…...
算法练习Day48|198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III
LeetCode: 198. 打家劫舍 - 力扣(LeetCode) 1.思路 边界思维,只有一个元素和两个元素的初始化考虑 当元素数大于3个时, 逆向思维,是否偷最后一个元素,倒序得出递推公式dp[i] Math.max(dp[i - 1], dp[i …...
什么是设计模式?常用的设计有哪些?
单例模式工厂模式代理模式(proxy) 一、设计模式 设计模式是前辈们经过无数次实践所总结的一些方法(针对特定问题的特定方法) 这些设计模式中的方法都是经过反复使用过的。 二、常用的设计模式有哪些? 1、单例模式&…...

clickHouse部署
docker仓库地址 https://hub.docker.com/ 1、docker环境搭建 # 1.先安装yml yum install -y yum-utils device-mapper-persistent-data lvm2 # 2.设置阿里云镜像 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 3.查…...

Flutter实现倒计时功能,秒数转时分秒,然后倒计时
Flutter实现倒计时功能 发布时间:2023/05/12 本文实例为大家分享了Flutter实现倒计时功能的具体代码,供大家参考,具体内容如下 有一个需求,需要在页面进行显示倒计时,倒计时结束后,做相应的逻辑处理。 实…...

【hadoop】windows上hadoop环境的搭建步骤
文章目录 前言基础环境下载hadoop安装包下载hadoop在windows中的依赖配置环境变量 Hadoop hdfs搭建创建hadfs数据目录修改JAVA依赖修改配置文件初始化hdfs namenode启动hdfs 前言 在大数据开发领域中,不得不说说传统经典的hadoop基础计算框架。一般我们都会将hadoo…...

一周在榜9本计算机专业新书
本周在榜计算机专业新书9本。 1、扩散模型从原理到实战 开启AI绘画新时代!AIGC大模型来临,配套赠送Diffusion视频课程! HuggingFace平台学习实战,常春藤盟校数据科学硕士与算法工程师带你从理论到实战,了解、掌握扩散…...

CSS变形与动画(二):perspctive透视效果 与 preserve-3d 3d效果(奥运五环例子)
文章目录 perspective 3d透视效果preserve-3d 3d嵌套效果例子 奥运五环 backface-visibility 背面效果 perspective 3d透视效果 perspective 指定了观察者与 z0 平面的距离,使具有三维位置变换的元素产生透视效果。z>0 的三维元素比正常大,而 z<0 …...