活动介绍

MySQL高可用性部署:树莓派上InnoDB集群配置指南

立即解锁
发布时间: 2025-08-23 02:32:46 阅读量: 5 订阅数: 10
PDF

MySQL InnoDB Cluster: 实现高可用性的全面指南

### MySQL高可用性部署:树莓派上InnoDB集群配置指南 #### 1. 前期准备 在操作过程中不会有反馈信息,完成操作后,可移除驱动器并将其放入树莓派中启动,以此验证镜像。也可以使用Etcher应用程序来克隆已创建的镜像,具体操作是将`idb_clone_rpi.bz2`镜像复制到桌面,再用Etcher将其复制到其他驱动器。 #### 2. MySQL服务器实例的最终配置 我们有四个相同的MySQL服务器副本,需要让每个副本变得唯一。需依次连接键盘、鼠标和显示器启动每台机器并进行更改,每台机器需要更改以下几个方面: - 唯一的`server_id`和报告的主机名 - 唯一的UUID - 静态IP地址 - 唯一的主机名 ##### 2.1 设置唯一的server_id 编辑每台机器的配置文件,选择一个唯一的服务器ID(`server_id`),例如使用范围1 - 4。使用`sudo nano /etc/my.cnf`命令编辑配置文件,若文件不存在也没关系,输入以下内容: ```plaintext [mysqld] server-id=1 report-host=cluster-rpi1 ``` 这里的`server-id`是服务器ID,`report-host`用于组复制向InnoDB集群报告主机名,确保服务器在集群中有唯一的主机名,方便在配置集群时通过主机名引用服务器。 ##### 2.2 使用唯一的UUID UUID存储在`auto.conf`文件中,用于服务器在组复制中唯一标识自己。由于我们克隆了镜像,所有服务器的UUID相同,这是克隆镜像的一个问题。若单独构建每台机器则没问题,因为每次安装时`auto.cnf`会自动生成。可以通过删除`auto.conf`文件来强制服务器重新生成UUID,操作示例如下: ```bash $ sudo more /usr/local/mysql/data/auto.cnf [auto] server-uuid=4127c169-520f-11e8-a834-b827ebcb9200 $ sudo rm /usr/local/mysql/data/auto.cnf $ sudo /etc/init.d/mysql restart [ ok ] Restarting mysql.server (via systemctl): mysql.server.service. $ sudo more /usr/local/mysql/data/auto.cnf [auto] server-uuid=bb1e15c5-53d1-11e8-982c-b827eb6ea7ce ``` ##### 2.3 设置唯一的静态IP地址 在示例中,MySQL服务器使用的IP地址范围是`192.168.42.241 - 192.168.42.244`。要设置正确的IP地址,需编辑`dhcpcd.conf`文件并设置IP地址,第一台MySQL服务器的配置示例如下: ```plaintext # Example static IP configuration: interface eth0 static ip_address=192.168.42.241/24 static routers=192.168.42.1 static domain_name_servers=192.168.42.1 ``` ##### 2.4 设置唯一的主机名 使用树莓派配置工具来设置主机名,我们将使用`cluster-rpi[1 - 4]`作为主机名,例如第三台服务器的主机名是`cluster-rpi3`,应用服务器的主机名是`cluster-rpi-app`。打开树莓派配置工具,在第一个选项卡中找到“Hostname”行,然后更改右侧文本框中的文本。 需要注意的是,必须在所有四台机器上执行这些步骤,若不自定义这三项,可能会导致集群启动出现问题。另外,还可以选择让服务器以命令行界面启动且不自动登录,通过树莓派配置工具,打开工具找到“Boot”和“Auto Login”行,关闭桌面选择“To CLI”单选按钮,关闭自动登录取消“当前用户”复选框。 #### 3. 集群的设置 ##### 3.1 物理布局 设置InnoDB集群时,首先要考虑测试系统的物理布局。不需要为每台计算机配备键盘、鼠标和显示器,开机并等待启动后可远程访问。但五台树莓派计算机各自连接电源和以太网集线器,会导致电线杂乱。建议将树莓派计算机、电源和以太网集线器进行合理布置,例如将电线捆绑起来,或者将它们安装在板子上,也可以构建一个Pi Stack让服务器更便携。 ##### 3.2 准备工作 确保所有服务器启动并就绪,树莓派计算机若不使用显示器观察启动顺序,需等待3 - 5分钟启动。之后要执行一个关键的准备步骤,使用`dba.configure_local_instance()`方法准备远程机器,这意味着要在本地机器上运行MySQL Shell,所以要在所有机器上安装该工具。 操作步骤如下: 1. 开启所有MySQL服务器(应用服务器可暂时关闭)。 2. 从桌面机器(或已开启并连接键盘、鼠标和显示器的应用服务器)打开终端,输入`$ ssh [email protected]`建立与第一台MySQL服务器的远程连接。若连接有问题,确保桌面计算机与服务器在同一网络,且服务器的静态IP地址和主机文件已设置,服务器能访问网络。 3. 连接成功后,使用MySQL Shell运行`configure_local_instance`方法,以`localhost`作为主机名,端口3306引用服务器。执行该方法后,会提示输入root用户的密码,接着选择如何创建集群管理用户,建议选择选项(1),即使用相同的root用户并修改以获得对集群的正确访问权限。 4. 提示输入用户账户(root)登录时使用的主机,为方便操作,本示例使用通配符(%),但生产环境中建议指定用户/主机组合以增强访问安全性。 5. 该方法会检查服务器是否有需要修复的问题,若有会询问是否自动修复,选择是。 6. 操作完成后,会询问是否重启实例以使更改生效,选择是。 以下是运行该方法的示例: ```bash $ mysqlsh MySQL Shell 8.0.11 Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type '\help' or '\?' for help; '\quit' to exit. MySQL Py > dba.configure_local_instance('localhost:3306') Please provide the password for 'root@localhost:3306': **** Configuring local MySQL instance listening at port 3306 for use in an InnoDB cluster... This instance reports its own address as cluster-rpi3 WARNING: User 'root' can only connect from localhost. If you need to manage this instance while connected from other hosts, new account(s) with the proper source address specification must be created. 1) Create remotely usable account for 'root' with same grants and password 2) Create a new admin account for InnoDB cluster with minimal required grants 3) Ignore and continue 4) Cancel Please select an option [1]: 1 Please provide a source address filter for the account (e.g: 192.168.% or % etc) or leave empty and press Enter to cancel. Account Host: % Some configuration options need to be fixed: +--------------------------+---------------+----------+---------------------+ | Variable | Current Value | Required | Note | Value +--------------------------+---------------+----------+---------------------+ | binlog_checksum | CRC32 | NONE | Update the server variable | | enforce_gtid_consistency | OFF | ON | Update read-­only variable and restart the server | | gtid_mode | OFF | ON | Update read-­only variable and restart the server | +--------------------------+---------------+----------+---------------------+ Do you want to perform the required configuration changes? [y/n]: y Do you want to restart the instance after configuring it? [y/n]: y Cluster admin user 'root'@'%' created. Configuring instance... The instance 'localhost:3 ```
corwn 最低0.47元/天 解锁专栏
赠100次下载
继续阅读 点击查看下一篇
profit 400次 会员资源下载次数
profit 300万+ 优质博客文章
profit 1000万+ 优质下载资源
profit 1000万+ 优质文库回答
复制全文

相关推荐

LI_李波

资深数据库专家
北理工计算机硕士,曾在一家全球领先的互联网巨头公司担任数据库工程师,负责设计、优化和维护公司核心数据库系统,在大规模数据处理和数据库系统架构设计方面颇有造诣。
最低0.47元/天 解锁专栏
赠100次下载
百万级 高质量VIP文章无限畅学
千万级 优质资源任意下载
千万级 优质文库回答免费看

最新推荐

边缘计算与IBMEdgeApplicationManagerWebUI使用指南

### 边缘计算与 IBM Edge Application Manager Web UI 使用指南 #### 边缘计算概述 在很多情况下,采用混合方法是值得考虑的,即利用多接入边缘计算(MEC)实现网络连接,利用其他边缘节点平台满足其余边缘计算需求。网络边缘是指网络行业中使用的“网络边缘(Network Edge)”这一术语,在其语境下,“边缘”指的是网络本身的一个元素,暗示靠近(或集成于)远端边缘、网络边缘或城域边缘的网络元素。这与我们通常所说的边缘计算概念有所不同,差异较为微妙,主要是将相似概念应用于不同但相关的上下文,即网络本身与通过该网络连接的应用程序。 边缘计算对于 IT 行业

科技研究领域参考文献概览

### 科技研究领域参考文献概览 #### 1. 分布式系统与实时计算 分布式系统和实时计算在现代科技中占据着重要地位。在分布式系统方面,Ahuja 等人在 1990 年探讨了分布式系统中的基本计算单元。而实时计算领域,Anderson 等人在 1995 年研究了无锁共享对象的实时计算。 在实时系统的调度算法上,Liu 和 Layland 在 1973 年提出了适用于硬实时环境的多编程调度算法,为后续实时系统的发展奠定了基础。Sha 等人在 2004 年对实时调度理论进行了历史回顾,总结了该领域的发展历程。 以下是部分相关研究的信息表格: |作者|年份|研究内容| | ---- | --

WPF文档处理及注解功能深度解析

### WPF文档处理及注解功能深度解析 #### 1. 文档加载与保存 在处理文档时,加载和保存是基础操作。加载文档时,若使用如下代码: ```csharp else { documentTextRange.Load(fs, DataFormats.Xaml); } ``` 此代码在文件未找到、无法访问或无法按指定格式加载时会抛出异常,因此需将其包裹在异常处理程序中。无论以何种方式加载文档内容,最终都会转换为`FlowDocument`以便在`RichTextBox`中显示。为研究文档内容,可编写简单例程将`FlowDocument`内容转换为字符串,示例代码如下: ```c

嵌入式平台架构与安全:物联网时代的探索

# 嵌入式平台架构与安全:物联网时代的探索 ## 1. 物联网的魅力与挑战 物联网(IoT)的出现,让我们的生活发生了翻天覆地的变化。借助包含所有物联网数据的云平台,我们在驾车途中就能连接家中的冰箱,随心所欲地查看和设置温度。在这个过程中,嵌入式设备以及它们通过互联网云的连接方式发挥着不同的作用。 ### 1.1 物联网架构的基本特征 - **设备的自主功能**:物联网中的设备(事物)具备自主功能,这与我们之前描述的嵌入式系统特性相同。即使不在物联网环境中,这些设备也能正常运行。 - **连接性**:设备在遵循隐私和安全规范的前提下,与同类设备进行通信并共享适当的数据。 - **分析与决策

未知源区域检测与子扩散过程可扩展性研究

### 未知源区域检测与子扩散过程可扩展性研究 #### 1. 未知源区域检测 在未知源区域检测中,有如下关键公式: \((\Lambda_{\omega}S)(t) = \sum_{m,n = 1}^{\infty} \int_{t}^{b} \int_{0}^{r} \frac{E_{\alpha,\alpha}(\lambda_{mn}(r - t)^{\alpha})}{(r - t)^{1 - \alpha}} \frac{E_{\alpha,\alpha}(\lambda_{mn}(r - \tau)^{\alpha})}{(r - \tau)^{1 - \alpha}} g(\

多项式相关定理的推广与算法研究

### 多项式相关定理的推广与算法研究 #### 1. 定理中 $P_j$ 顺序的优化 在相关定理里,$P_j$ 的顺序是任意的。为了使得到的边界最小,需要找出最优顺序。这个最优顺序是按照 $\sum_{i} \mu_i\alpha_{ij}$ 的值对 $P_j$ 进行排序。 设 $s_j = \sum_{i=1}^{m} \mu_i\alpha_{ij} + \sum_{i=1}^{m} (d_i - \mu_i) \left(\frac{k + 1 - j}{2}\right)$ ,定理表明 $\mu f(\xi) \leq \max_j(s_j)$ 。其中,$\sum_{i}(d_i

以客户为导向的离岸团队项目管理与敏捷转型

### 以客户为导向的离岸团队项目管理与敏捷转型 在项目开发过程中,离岸团队与客户团队的有效协作至关重要。从项目启动到进行,再到后期收尾,每个阶段都有其独特的挑战和应对策略。同时,帮助客户团队向敏捷开发转型也是许多项目中的重要任务。 #### 1. 项目启动阶段 在开发的早期阶段,离岸团队应与客户团队密切合作,制定一些指导规则,以促进各方未来的合作。此外,离岸团队还应与客户建立良好的关系,赢得他们的信任。这是一个奠定基础、确定方向和明确责任的过程。 - **确定需求范围**:这是项目启动阶段的首要任务。业务分析师必须与客户的业务人员保持密切沟通。在早期,应分解产品功能,将每个功能点逐层分

分布式系统中的共识变体技术解析

### 分布式系统中的共识变体技术解析 在分布式系统里,确保数据的一致性和事务的正确执行是至关重要的。本文将深入探讨非阻塞原子提交(Nonblocking Atomic Commit,NBAC)、组成员管理(Group Membership)以及视图同步通信(View - Synchronous Communication)这几种共识变体技术,详细介绍它们的原理、算法和特性。 #### 1. 非阻塞原子提交(NBAC) 非阻塞原子提交抽象用于可靠地解决事务结果的一致性问题。每个代表数据管理器的进程需要就事务的结果达成一致,结果要么是提交(COMMIT)事务,要么是中止(ABORT)事务。

【性能调优秘籍】:让你的Qt5.9.1 PJSIP网络电话跑得更快!

![【性能调优秘籍】:让你的Qt5.9.1 PJSIP网络电话跑得更快!](https://www.contus.com/blog/wp-content/uploads/2021/12/SIP-Protocol-1024x577.png) # 摘要 本文针对基于Qt5.9.1的PJSIP网络电话系统进行深入研究,概括其基本概念并探讨基础及高级性能调优技术。首先介绍了PJSIP框架及其内部结构和数据流,随后重点关注网络性能优化、多线程和异步处理的重要性。接着,高级性能调优技术包括内存管理、编解码效率提升、以及第三方多媒体框架的集成被详细解析。性能监控与分析工具的使用和性能问题的识别也是本文的研

分布式应用消息监控系统详解

### 分布式应用消息监控系统详解 #### 1. 服务器端ASP页面:viewAllMessages.asp viewAllMessages.asp是服务器端的ASP页面,由客户端的tester.asp页面调用。该页面的主要功能是将消息池的当前状态以XML文档的形式显示出来。其代码如下: ```asp <?xml version="1.0" ?> <% If IsObject(Application("objMonitor")) Then Response.Write cstr(Application("objMonitor").xmlDoc.xml) Else Respo