linux搭建mysql主从复制(一主一从)

news2024/9/21 1:46:06

目录

0、环境部署

1、主服务器配置

1.1  修改mysql配置文件

1.2  重启mysql

1.3  为从服务器授权

1.4  查看二进制日志坐标

2、从服务器配置

2.1  修改mysql配置文件

2.2  重启mysql

2.3  配置主从同步

2.4  开启主从复制

3、验证主从复制

3.1  主服务器上创建test_db

3.2  从服务器上查看test_db

4、报错解决

Slave_IO_Running: No

Slave_IO_Running: Connecting

补充


0、环境部署

设备操作系统 IP地址mysql版本
master主服务器openEuler release 22.03 (LTS-SP2)192.168.48.1318.0.37 for Linux on x86_64 (Source distribution)
slave从服务器openEuler release 22.03 (LTS-SP2)192.168.48.1328.0.37 for Linux on x86_64 (Source distribution)

注:openEuler release 22.03 (LTS-SP2)的内核为 Linux 5.10.0-153.12.0.92.oe2203sp2.x86_64

#下载mysql
yum install -y mysql-server
#防火墙放行mysql3306端口(防火墙没开忽略此操作)
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports | grep 3306
#关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
reboot
#启动mysql
systemctl start mysqld
#检查mysql是否成功启动
ps -ef | grep mysql
#设置mysql开机自启
systemctl enable mysqld
#登录mysql
mysql -uroot -p

该版本mysql首次登录密码为空,直接回车即可

1、主服务器配置

1.1  修改mysql配置文件

vim /etc/my.sql

server-id=1#必选项
read-only=0
binlog_format=MIXED
log-slave-updates=true
log-bin=mysql-bin#不添加此项默认为binlog.0000x格式

1.2  重启mysql

systemctl restart mysqld

1.3  为从服务器授权

mysql -uroot -p
#创建elysia用户,允许登录远程主机IP为192.168.48.132,密码为elysia@123
CREATE USER 'elysia'@'192.168.48.132' IDENTIFIED WITH mysql_native_password BY 'elysia@123';
#为elysia用户授予所有权限,包括了replication slave权限
GRANT ALL PRIVILEGES ON *.* TO 'elysia'@'192.168.48.132';
#刷新权限
flush privileges;

1.4  查看二进制日志坐标

show master status\G;

当前使用的二进制文件的名字为:mysql-bin.000001 

当前偏移量为:2405

2、从服务器配置

2.1  修改mysql配置文件

echo server-id=2 >> /etc/my.cnf

从服务器server-id不能与主服务器一样

2.2  重启mysql

systemctl restart mysqld

2.3  配置主从同步

mysql -u root -p
change master to master_host='192.168.48.131',#主服务器IP
master_user='elysia',#用于复制的用户,必须有replication slave权限
master_password='elysia@123',#用于复制用户的密码
master_log_file='mysql-bin.000001',#当前使用的二进制日志文件binlog
master_log_pos=2405;#binlog的位置

2.4  开启主从复制

start slave;
#查看当前主从复制状态
show slave status\G;

出现双yes即可

3、验证主从复制

3.1  主服务器上创建test_db

#创建一个test_db数据库
create database test_db;
#创建一个dept表
use test_db;
create table dept (dept1 int ,dept_name varchar(11)) charset=utf8;
#插入数据
insert into dept values
(101,'财务'),
(102,'销售'),
(103,'IT技术'),
(104,'行政');

3.2  从服务器上查看test_db

#查看当前数据库; 
show databases;
#查看表的内容;
select * from test_db.dept;

从服务器上出现test_db,并且成功查询,主从复制搭建成功

4、报错解决

Slave_IO_Running: No

查看 Last_IO_Error 

报错原因:

二进制文件位置坐标错误

解决:将master_log_pos改为正确位置即可

其他可能错误:

  • 从服务器mysql远程连接主服务器失败;
  • 两台虚拟机uuid或者mac地址重复(可能你的两台虚拟机由同一台克隆而来);

Slave_IO_Running: Connecting

查看 Last_IO_Error 

 报错原因:这个错误表明连接到MySQL数据库时,使用了caching_sha2_password身份验证插件,但是要求进行安全连接。也就是,你在从服务器mysql上使用了以下格式的命令创建了从服务器的登录用户

CREATE USER 'elysia'@'192.168.48.132' IDENTIFIED BY 'elysia@123';

解决方法:

ALTER USER 'elysia'@'192.168.48.132' IDENTIFIED WITH mysql_native_password BY 'elysia@123';

补充

CREATE USER 'elysia'@'192.168.48.132' IDENTIFIED BY 'elysia@123';

CREATE USER 'elysia'@'192.168.48.132' IDENTIFIED WITH mysql_native_password BY 'elysia@123';

的区别:

这两个 SQL 语句的区别在于用户的身份验证机制。

  • 1. `CREATE USER 'elysia'@'192.168.48.132' IDENTIFIED BY 'elysia@123';`: 这条语句创建了一个名为 'elysia' 的用户,该用户可以从 IP 地址为 '192.168.48.132' 的主机连接到 MySQL 数据库。通过 `IDENTIFIED BY 'elysia@123'` 指定了用户的密码。这种方式使用的身份验证插件是默认的 `caching_sha2_password`,这是 MySQL 8.0 版本及以上的默认身份验证插件。
  • 2. `CREATE USER 'elysia'@'192.168.48.132' IDENTIFIED WITH mysql_native_password BY 'elysia@123';`:这条语句也创建了一个名为 'elysia' 的用户,同样可以从 IP 地址为 '192.168.48.132' 的主机连接到 MySQL 数据库。不同之处在于,通过 `IDENTIFIED WITH mysql_native_password` 指定了用户要使用的身份验证插件,即 `mysql_native_password`。这是旧版本 MySQL 使用的默认身份验证插件,它在 MySQL 8.0 版本中被 `caching_sha2_password` 替代。

因此,这两个语句的主要区别在于用户的身份验证机制。如果你的 MySQL 数据库版本是 MySQL 8.0 及以上,推荐使用第一个语句,因为它使用了更安全的默认身份验证插件。如果你需要与旧版本的 MySQL 数据库兼容,可以使用第二个语句指定使用 `mysql_native_password` 身份验证插件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1933385.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Stable Diffusion【美女写实模型】:亚洲女性写实大模型,皮肤细腻光滑!

今天介绍一款专注于亚洲女性写实的SDXL模型:XXMix_9realisticSDXL。该模型绘图质量相当出色:面部在真实感基础上增加了一些轻度的美颜效果;以及增强的光影特效方面效果;只需要简单提示语就可以画出典型的亚洲女孩风格高质量图像。…

通过vue3 + TypeScript + uniapp + uni-ui 实现下拉刷新和加载更多的功能

效果图: 核心代码: <script lang="ts" setup>import { ref, reactive } from vue;import api from @/request/api.jsimport empty from @/component/empty.vueimport { onLoad,onShow, onPullDownRefresh, onReachBottom } from @dcloudio/uni-applet form …

Gradio技术入门(一)

Gradio是一个开源的Python库&#xff0c;旨在让创建机器学习模型的应用界面变得简单快捷。 官网&#xff1a;格罗特 (gradio.app) 一、基本概述 1&#xff0c;技术概述 1. 定义与用途 Gradio通过Python生成一套HTML页面&#xff0c;其中编写好了大部分的组件&#xff0c;主…

《大数据基础》相关知识点及考点,例题

1.6大数据计算模式 1、MapReduce可以并行执行大规模数据处理任务&#xff0c;用于大规模数据集&#xff08;大于1TB&#xff09;的并行运算。MapReduce 极大地方便了分布式编程工作&#xff0c;它将复杂的、运行于大规模集群上的并行计算过程高度地抽象为两个函数一一Map和Redu…

数据库系统概论:数据库完整性

引言 数据库是现代信息系统的心脏&#xff0c;数据的准确性和一致性对于业务流程至关重要。数据库完整性是确保数据质量的基石&#xff0c;它涵盖了数据的正确性、相容性和一致性&#xff0c;是数据安全与业务连续性的保障。 数据库完整性是指数据的精确性、可靠性和逻辑一致…

Gitee使用教程2-克隆仓库(下载项目)并推送更新项目

一、下载 Gitee 仓库 1、点击克隆-复制代码 2、打开Git Bash 并输入复制的代码 下载好后&#xff0c;找不到文件在哪的可以输入 pwd 找到仓库路径 二、推送更新 Gitee 项目 1、打开 Git Bash 用 cd 命令进入你的仓库&#xff08;我的仓库名为book&#xff09; 2、添加文件到 …

【Unity】升级至API34,编译报错Java Runtime版本问题

文章目录 一、背景二、问题描述三、原因和解决方法 一、背景 1、Unity 2021.3.33f1 2、Firebase 11.7.0 3、Max Unity 6.5.2 3、升级至API-34 二、问题描述 错误信息 Could not load custom lint check jar file C:\Users\xxx.gradle\caches\transforms-2\files-2.1\b27e2aac8…

pnpm build打包时占内溢出

这两天在打包H5网页的时候&#xff0c;失败&#xff0c;总是提示下方错误&#xff0c;试了多种方法下方的亲测有效 FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory 严重错误&#xff1a;堆限制附近标记压缩无效分…

【字幕】字幕特效入门

前言 最近两周调研了一下字幕特效的底层程序逻辑&#xff0c;因为工作内容的原因&#xff0c;就分享几个自己找的链接具体细节就不分享了&#xff0c;CSDN也是我的个人笔记&#xff0c;只记录一些简单的内容用于后续自己方便查询&#xff0c;顺便帮助一下正在苦苦查阅资料入门…

.net core appsettings.json 配置 http 无法访问

1、在appsettings.json中配置"urls": "http://0.0.0.0:8188" 2、但是网页无法打开 3、解决办法&#xff0c;在Program.cs增加下列语句 app.UseAntiforgery();

数据库系统概论:数据库系统模式

数据库系统在我们的数字世界中扮演着至关重要的角色&#xff0c;无论是个人设备还是企业级应用&#xff0c;数据的有效管理和访问都是必不可少的。而数据库系统的模式结构是确保数据一致性和可访问性的关键组成部分。 数据库系统模式 基本概念 型和值 数据模型中有 型(type…

数据结构之细说链表

1.1顺序表的问题以及思考 经过上一篇顺序表的学习&#xff0c;我们知道顺序表还是有很多缺点 顺序表的缺点&#xff1a; 1.中间/头部的插入删除&#xff0c;实际复杂度为O(N) 2.增容需要申请新空间&#xff0c;拷贝数据&#xff0c;释放旧空间。会有不小的消耗 3.扩容一般…

【ECharts】使用 ECharts 处理不同时间节点的数据系列展示

使用 ECharts 处理不同时间节点的数据系列展示 在数据可视化中&#xff0c;我们经常遇到这样的问题&#xff1a;不同数据系列的数据点在时间轴上并不对齐。这种情况下&#xff0c;如果直接在 ECharts 中展示&#xff0c;图表可能会出现混乱或不准确。本文将通过一个示例代码&a…

vue3+vite从零架构:写组件、构建、打包并上传个人前端组件库至私有npm仓库最终在自己项目中下载并使用(超详细的流程,小编已实现)

目录 第一章 前言 第二章 准备工作 第三章 封装组件 3.1 文件结构 3.2 编写组件代码 第四章 项目打包 第五章 发布到npm 5.1 npm准备工作 5.2 发布npm包 ​编辑 第六章 从npm安装使用 第一章 前言 在我们很多开发过程中&#xff0c;不管是使用vue还是react&#x…

【Docker】Docker-harbor私有仓库部署与管理

目录 一.Harbor 概述 1.什么是Harbor 2.Harbor的特性 3.Harbor的构成 二.Harbor 部署 1.部署 Docker-Compose 服务 2.部署 Harbor 服务 3.启动 Harbor 4.创建新项目 5.创建用户 6.本地上传镜像 7.从Harbor下载镜像 三.镜像同步 1.定时拉取 2.主动推送 四.管理 …

掌握这些技巧,让你成为画册制作高手

在数字化的时代背景下&#xff0c;电子画册以其便捷的传播方式、丰富的视觉表现形式&#xff0c;赢得了大众的喜爱。它不仅能够在个人电脑上展现&#xff0c;还能通过智能手机、平板电脑等多种移动设备随时随地被访问和浏览。这种跨平台的支持&#xff0c;使得无论你身处何地&a…

基于STM32智能电子锁设计

1.简介 随着时代的高速发展&#xff0c;家居安全也成为人们日常生活中的一个安全问题。目前传统的门锁使用的是机械密码&#xff0c;在安全性方面表现不佳。这些缺点可以通过改用智能电子密码锁来弥补。智能电子锁是一种使用了现代电子技术的高科技产品&#xff0c;它的出现解决…

【iOS】类对象的结构分析

目录 对象的分类object_getClass和class方法isa流程和继承链分析isa流程实例验证类的继承链实例验证 类的结构cache_t结构bits分析实例验证属性properties方法methods协议protocolsro类方法 类结构流程图解 对象的分类 OC中的对象主要可以分为3种&#xff1a;实例对象&#xf…

江协科技51单片机学习- p27 I2C AT24C02存储器

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…

动手学深度学习——5.卷积神经网络

1.卷积神经网络特征 现在&#xff0c;我们将上述想法总结一下&#xff0c;从而帮助我们设计适合于计算机视觉的神经网络架构。 平移不变性&#xff08;translation invariance&#xff09;&#xff1a;不管检测对象出现在图像中的哪个位置&#xff0c;神经网络的前面几层应该对…