Mysql双主双从

news2024/9/23 15:28:18

双主双从

  • 1.安装Mysql
    • 1.1 查看linux版本
    • 1.2 下载Mysql安装包
    • 1.3 上传并解压
    • 1.4 安装Mysql
    • 1.5 编辑端口号
    • 1.6 Mysql启动命令
    • 1.7 更新密码
  • 2.搭建Mysql主从复制
    • 2.1 搭建Master主服务器
      • 2.1.1 修改mysql配置文件
      • 2.1.2 重启Mysql服务
      • 2.1.3 创建Slave用户, 并授权
      • 2.1.4 查看主服务器当前状态
    • 2.2 搭建Slave从服务器
      • 2.2.1 修改mysql配置文件
      • 2.2.2 重启Mysql服务
      • 2.2.3 配置主从同步
      • 2.2.4 启动Slave线程
  • 3.搭建Mysql主从复制
    • 3.1 双Master机配置文件修改
      • 3.1.1 Master1配置
      • 3.1.2 Master2配置
      • 3.1.2 重启Mysql,使配置生效

1.安装Mysql

1.1 查看linux版本

cat /etc/os-release

在这里插入图片描述
Kylin Linux(国产麒麟)是中国自主开发的操作系统

1.2 下载Mysql安装包

Mysql Download

因为Kylin Linux V10是基于CentOS 8开发的, 所以选择Red Hat Enterprise Linux 8 / Oracle Linux 8 (x86, 64-bit), RPM Bundle

在这里插入图片描述

1.3 上传并解压

上传到指定目录, 例如: /opt/mysql, 解压文件

tar xvf mysql-8.0.35-1.el8.x86_64.rpm-bundle.tar

1.4 安装Mysql

rpm -ivh mysql-community-common-8.0.35-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.35-1.el8.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.35-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-8.0.35-1.el8.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.35-1.el8.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.35-1.el8.x86_64.rpm
rpm -ivh mysql-community-server-8.0.35-1.el8.x86_64.rpm

1.5 编辑端口号

vi /etc/my.cnf

修改端口号

# 端口号
port=33061 

1.6 Mysql启动命令

systemctl start mysqld    #启动 MySQL

其他命令

systemctl start mysqld    #启动 MySQL
systemctl stop mysqld     #关闭 MySQL
systemctl restart mysqld  #重启 MySQL
systemctl status mysqld   #查看 MySQL 状态
systemctl enable mysqld   #设置开机自启

1.7 更新密码

1.查看初始密码

cat /var/log/mysqld.log | grep root@localhost

2.登录mysql

mysql -u root -p

3.更新密码

alter user root@localhost identified by 'MyS3cure!P@ssw0rd';

4.查看用户

SELECT User, Host FROM mysql.user;

2.搭建Mysql主从复制

  • 主:192.166.16.74
  • 从:192.166.16.29

2.1 搭建Master主服务器

2.1.1 修改mysql配置文件

vim /etc/my.cnf
server-id=1
log-bin=master-bin
binlog_format = MIXED
log-slave-updates=true
  • server-id: 每台MySQL服务器必须有一个唯一的ID。可以设置为任意数字,但需确保唯一。
  • log-bin: 启用二进制日志并指定日志文件的前缀。
  • binlog_format=MIXED表示MySQL将根据具体情况动态选择使用基于语句的复制还是基于行的复制。这种模式在大多数应用场景中提供了性能和准确性之间的良好平衡。

2.1.2 重启Mysql服务

systemctl restart mysqld

2.1.3 创建Slave用户, 并授权

# 创建slave用户
CREATE USER 'replica'@'%' IDENTIFIED BY 'MyS3cure!P@ssw0rd';
# 授权
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%';
# 刷新权限
FLUSH PRIVILEGES;

2.1.4 查看主服务器当前状态

show master status

在这里插入图片描述

2.2 搭建Slave从服务器

2.2.1 修改mysql配置文件

vim /etc/my.cnf
# 修改,注意id与Master的不同,两个Slave的id也要不同
server-id = 2           
# 添加,开启中继日志,从主服务器上同步日志文件记录到本地
relay-log=relay-log-bin           
# 添加,定义中继日志文件的位置和名称
relay-log-index=slave-relay-bin.index   
relay_log_recovery = 1

2.2.2 重启Mysql服务

systemctl restart mysqld

2.2.3 配置主从同步

CHANGE MASTER TO MASTER_HOST='192.210.16.238',
MASTER_USER='replica',
MASTER_PASSWORD='MyS3cure!P@ssw0rd',
MASTER_LOG_FILE=从主库中查询,
MASTER_LOG_POS=从主库中查询,
MASTER_PORT=33061;

2.2.4 启动Slave线程

start slave;                #启动同步,如有报错执行 reset slave;
show slave status\G         #查看 Slave 状态

#确保 IO 和 SQL 线程都是 Yes,代表同步正常
Slave_IO_Running: Yes       #负责与主机的io通信
Slave_SQL_Running: Yes      #负责自己的slave mysql进程

在这里插入图片描述

3.搭建Mysql主从复制

一个主机Master1用于处理所有的写请求,它的从机Slave1和另一台主机Master2还有它的从机Slave2负责所有的读请求。当Master1主机宕机后,Master2主机负责写请求,Master1、Master2互为备份机。
在这里插入图片描述

编号角色IP
1Master1192.166.16.74
2Slave1192.166.16.29
3Master2192.166.16.166
4Slave2192.166.16.111

3.1 双Master机配置文件修改

3.1.1 Master1配置

vim /etc/my.cnf

my.cnf增加的内容:

#主服务器唯一ID (与 Master2,...... MasterN 的不同点)
server-id=1
#启用二进制日志, 日志文件的前缀为mysql-bin
log-bin=mysql-bin

#从库的中继日志,主库日志写到中继日志,中继日志再重做到从库
# relay-log=myslql-relay-bin

# binlog保留时间7天
expire_logs_days=7

# binlog 文件的大小
max_binlog_size=1G

#设置logbin格式。取值:STATEMENT (默认),ROW,MIXED
binlog_format=ROW

# 该从库是否写入二进制日志。如果需要成为多主则可启用。只读可以不需要
log-slave-updates=1

# 该服务器自增列的初始值。(与 Master2,...... MasterN 的不同点)
auto-increment-offset=1

# 该服务器自增列增量。其默认值是1, 取值范围是1 .. 65535
auto-increment-increment=2


# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=sys

#设置需要复制的数据库(可选)。
# 如果要配置了此项,则 mysql 只复制下面指定的数据库。
# 如果不配置此项,则 mysql 默认复制所有的数据库(不包含 binlog-ignore-db 的数据库)
#binlog-do-db=需要复制的主数据库1
#binlog-do-db=需要复制的主数据库2

3.1.2 Master2配置

vim /etc/my.cnf

my.cnf增加的内容:

#主服务器唯一ID。(与 Master1,Master3,...... MasterN 的不同点)
server-id=3
#启用二进制日志
log-bin=mysql-bin

#从库的中继日志,主库日志写到中继日志,中继日志再重做到从库
# relay-log=myslql-relay-bin

# binlog保留时间7天
expire_logs_days=7

# binlog 文件的大小
max_binlog_size=1G

#设置logbin格式。取值: STATEMENT (默认),ROW,MIXED
binlog_format=ROW

# 双主模式中,log-slave-updates必须配置。因为作为从数据库的时候,有写入操作也要更新二进制日志文件
log-slave-updates=1

# 该服务器自增列的初始值。取值范围是1 .. 65535
auto-increment-offset=2

# 该服务器自增列增量。(与 Master1,Master 3, ...... MasterN 的不同点)
auto-increment-increment=2

# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=sys

#设置需要复制的数据库(可选)
# 如果要配置了此项,则 mysql 只复制下面指定的数据库。
# 如果不配置此项,则 mysql 默认复制所有的数据库(不包含 binlog-ignore-db 的数据库)
#binlog-do-db=需要复制的主数据库1
#binlog-do-db=需要复制的主数据库2

3.1.2 重启Mysql,使配置生效

systemctl restart mysqld.service

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

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

相关文章

RTOS实战项目之实现多任务系统

文章目录 一、RTOS引入二、任务的引入2.1 任务的定义2.2 理解C函数的内部机制2.3 ARM架构2.4 汇编指令2.5 怎么保存函数的现场①要保存什么②保存现场的几种场景 三、FreeRTOS中怎么创建任务四、通过链表深入理解调度机制4.1 优先级与状态4.2 调度方法 五、创建任务—伪造现场5…

Python青少年简明教程:赋值语句

Python青少年简明教程:赋值语句 变量赋值是指将一个值分配给变量的过程。Python 支持多种形式的赋值(assignment),包括基本赋值、多重赋值、链式赋值和解包赋值等。 为了深入理解Python赋值语句机制,先了解一下id()函数…

[Meachines] [Easy] Legacy nmap 漏洞扫描脚本深度发现+MS08-067

信息收集 IP AddressOpening Ports10.10.10.4TCP:135,139,445 $ nmap -p- 10.10.10.4 --min-rate 1000 -sC -sV -Pn PORT STATE SERVICE VERSION 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows n…

战略合作篇白皮书:深度革新,赋能企业跃迁

01背景 企业数字化转型已经成为当今商业环境中不可避免的趋势,主要有以下几个原因: 技术发展:随着信息技术的迅猛发展和普及,企业面临着数字化转型的迫切需求。云计算、大数据、人工智能等技术正在改变商业模式和运营方式&#xf…

【C++第十四章】进阶模板

【C第十四章】进阶模板 非类型模板参数🧐 我们创建一个类,可以用模板开一个大小的为N的数组,这样优于用宏来定义N,因为可以在创建对象时可以根据需求更改数组大小。我们称在模板定义中使用的不依赖于模板类型的参数为非类型模板参…

当前A股平均市盈率

再写一篇【不务正业】的 2023-08-23A股平均市盈率 来自乐咕乐股网 当前A股市盈率是否为低点? 不言而喻 ‌当前A股市场的市盈率确实处于相对低位。‌ 根据东方财富Choice最新数据显示数据,截至2024年8月23日,全A市盈率为13.06倍,…

(贪心) LeetCode 45. 跳跃游戏 II

原题链接 一. 题目描述 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n …

《加油吧少年》热播 编剧蔡璧鸿:创作需要对幽默保持高度关注

近日&#xff0c;校园剧《加油吧少年》正在热播中&#xff0c;该剧以学渣视角&#xff0c;讲述他在高中校园与学霸&#xff0c;女神&#xff0c;死党一起学习&#xff0c;成长和努力拼搏的故事&#xff0c;《加油吧少年》自播出后&#xff0c;便以轻松幽默&#xff0c;诙谐搞笑…

2024口碑最好的四大游泳耳机大揭秘,游泳教练全方位测评分析!

游泳&#xff0c;作为一种全身性的锻炼方式&#xff0c;越来越受到人们的青睐。在水下&#xff0c;人们渴望能够聆听到美妙的音乐&#xff0c;让游泳变得更加有趣和放松。游泳耳机的出现&#xff0c;正是为了满足这一需求。它们不仅能够提供防水、防汗的功能&#xff0c;还能在…

软件测试——自动化测试selenium常用函数

目录 元素的定位cssSelectorxpathxpath语法&#xff1a; 元素定位函数 操作测试对象窗口切换窗口窗口设置大小窗口切换屏幕截图关闭窗口 等待强制等待隐式等待显示等待 浏览器导航弹窗警告弹窗确认弹窗提示弹窗 文件上传浏览器参数设置 元素的定位 web⾃动化测试的操作核⼼是能…

RFID光触发标签在多行业的应用与效益差异

在当今数字化和智能化的浪潮下&#xff0c;RFID技术已成为众多行业优化运营、提升竞争力的关键手段。RFID光触发标签作为这一技术的创新成果&#xff0c;以其独特的性能特点&#xff0c;正逐渐在各个领域发挥着重要作用。 一、RFID光触发标签的特点与参数 &#xff08;一&…

优惠券秒杀项目

一、添加优惠券的同时&#xff0c;将优惠券信息&#xff0c;以及用户列表放到redis中 Override Transactional public void addSeckillVoucher(Voucher voucher) {// 保存优惠券save(voucher);// 保存秒杀信息SeckillVoucher seckillVoucher new SeckillVoucher();seckillVou…

linux dig域名DNS 查询与iptables域名ip访问流量限制;PTR 反向解析从 IP 地址到域名的映射

一、域名 dns查询 在 Linux 系统中&#xff0c;你可以使用多种工具和技术来进行 DNS 查询和 IP 限制。以下是一些常用的方法和工具&#xff1a; DNS 查询 dig 命令&#xff1a; dig 是一个强大的命令行工具&#xff0c;用于查询 DNS 信息。 dig example.com你可以指定查询类型…

【TCP】核心机制:滑动窗口、流量控制和拥塞控制

文章目录 滑动窗口窗口滑动滑动窗口丢包 流量控制拥塞控制窗口大小变化过程 滑动窗口 有一类算法题&#xff0c;就是通过滑动窗口的思想来解决的&#xff0c;算法中的“滑动窗口”借鉴自 TCP 的滑动窗口 TCP 是要保证可靠传输的>代价&#xff0c;降低了传输的效率&#xf…

【机器学习】3. 欧式距离,曼哈顿距离,Minkowski距离,加权欧式距离

Euclidean - L2 norm L2范数 D ( A , B ) ( a 1 − b 1 ) 2 ( a 2 − b 2 ) 2 . . . D(A,B) \sqrt{(a_1-b_1)^2(a_2-b_2)^2 ...} D(A,B)(a1​−b1​)2(a2​−b2​)2... ​ Manhattan D ( A , B ) ∣ a 1 − b 1 ∣ ∣ a 2 − b 2 ∣ . . . D(A,B) \sqrt{|a_1-b_1||a_…

全网最简单的Java设计模式【九】策略模式-实战中最常用的设计模式之一

策略模式是一种行为设计模式&#xff0c;它允许你定义一系列的算法&#xff0c;把它们一个个封装起来&#xff0c;并且使它们可以相互替换。该模式让算法的变化独立于使用算法的客户。在实际开发中&#xff0c;策略模式可以帮助我们减少大量的 if-else 或 switch 条件判断语句&…

产品的需求分析

一、需求 1.需求概念 用户的预期与现实存在在差异 用户所期望的明确的解决方案 2.需求的常用形式 提问题 提目的 提方案 3.需求的来源 外部需求&#xff1a;用户、市场、其他竞品 内部需求&#xff1a;业务部门、产品经理 4.需求测试方法 定性方式&#xff1a;逻辑…

【生日视频制作】江边夜景游轮观光船霓虹灯AE模板修改文字软件生成器教程特效素材【AE模板】

游轮观光船生日视频制作教程AE模板修改文字特效软件生成器素材 怎么如何做的【生日视频制作】江边夜景游轮观光船霓虹灯AE模板修改文字软件生成器教程特效素材【AE模板】 生日视频制作步骤&#xff1a; 安装AE软件下载AE模板把AE模板导入AE软件修改图片或文字渲染出视频

鸿蒙(API 12 Beta3版)【使用Image完成图片接收器】图片开发指导依赖JS对象

图像接收类&#xff0c;用于获取组件surface id&#xff0c;接收最新的图片和读取下一张图片&#xff0c;以及释放ImageReceiver实例。 开发步骤 添加依赖 在进行应用开发之前&#xff0c;开发者需要打开native工程的src/main/cpp/CMakeLists.txt&#xff0c;在target_link_…

【Qt】Qt系统 | Qt事件| 鼠标事件

文章目录 鼠标事件鼠标点击事件鼠标释放事件鼠标双击事件鼠标移动事件 滚轮事件 在 Qt 中&#xff0c;鼠标事件是用 QMouseEvent 实现的。当在窗口中按下鼠标或者移动鼠标时&#xff0c;都会产生鼠标事件 鼠标事件 鼠标点击事件 鼠标按下时通过 虚函数 mousePressEvent() 来…