当前位置: 首页 > news >正文

华为欧拉(EulerOS)系统全栈软件部署指南:从 Redis 到 MySQL 实战详解

前言

在国产化操作系统蓬勃发展的背景下,华为欧拉(EulerOS)凭借其稳定性与安全性,成为企业级服务器部署的重要选择。本文基于官方技术文档与最佳实践,详细梳理 Redis 集群、RabbitMQ、JDK、Tomcat 及 MySQL 在欧拉系统中的标准化部署流程,涵盖环境校验、依赖处理、配置优化及故障排查,为技术人员提供可复用的生产级部署方案。

一、Redis 集群(含哨兵模式)部署实战

1. 环境准备与包管理

官方源下载(经华为云镜像站校验):

bash

wget https://repo.huaweicloud.com/hce/2.0/updates/x86_64/Packages/redis6-6.2.7-1.hce2.x86_64.rpm

三节点统一操作

bash

# 卸载旧版本(若存在)
rpm -e --nodeps $(rpm -qa | grep redis)
# 安装稳定版
rpm -ivh redis6-6.2.7-1.hce2.x86_64.rpm
# 定位配置文件
whereis redis  # 输出路径:/etc/redis.conf

2. 核心配置优化(生产级模板)

主节点(Master)配置

conf

bind 0.0.0.0          # 监听所有地址
protected-mode no     # 关闭保护模式
port 6379             # 业务端口
daemonize yes         # 守护进程模式
requirepass ky1!      # 强密码策略
appendonly yes        # 开启AOF持久化
appendfsync everysec  # 兼顾性能与数据安全

从节点(Slave)差异化配置

conf

slaveof 192.168.0.10 6379  # 指向主节点IP:端口
masterauth ky1!          # 主节点密码认证

3. 哨兵(Sentinel)高可用配置

三节点统一配置

conf

# 定位哨兵配置文件
find / -name "*sentinel.conf"  # 通常路径:/etc/redis-sentinel.conf
# 核心配置段
bind 0.0.0.0
protected-mode no
port 26379                     # 哨兵默认端口
daemonize yes                   # 后台运行
sentinel monitor mymaster 192.168.0.10 6379 2  # 监控主节点,2个哨兵同意故障转移
sentinel auth-pass mymaster ky1!  # 主节点密码
sentinel down-after-milliseconds mymaster 15000  # 15秒判定节点下线
sentinel failover-timeout mymaster 180000       # 故障转移超时时间

4. 启动与状态校验

bash

# 按顺序启动(主→从→哨兵)
redis-server /etc/redis.conf &
redis-sentinel /etc/redis-sentinel.conf &
# 状态检查
ps -ef | grep redis  # 确保redis-server与sentinel进程正常
redis-cli -a ky1! -p 26379 info sentinel  # 验证哨兵集群状态

二、RabbitMQ 消息队列部署(含 Web 管理界面)

1. 依赖链安装(严格版本匹配)

bash

# OpenSSL 1.1.1m(欧拉官方适配版)
rpm -ivh openssl-1.1.1m-2.r51.hce2.x86_64.rpm
# Erlang 23.0.2(RabbitMQ 3.8.x兼容版)
rpm -ivh erlang-23.0.2-1.el7.x86_64.rpm
# 其他依赖
rpm -ivh socat-1.7.3.2-8.hce2.x86_64.rpm logrotate-3.18.1-1.r5.hce2.x86_64.rpm

2. 服务安装与初始化

bash

# 安装服务器端
rpm -ivh rabbitmq-server-3.8.5-1.el7.noarch.rpm
# 启动与管理
systemctl enable rabbitmq-server  # 开机自启
systemctl start rabbitmq-server   # 启动服务

3. 管理界面与权限配置

bash

# 启用Web管理插件
rabbitmq-plugins enable rabbitmq_management
# 创建管理员用户(生产环境禁用guest账号)
rabbitmqctl add_user admin Admin@1234  # 用户名:admin 密码:Admin@1234
rabbitmqctl set_user_tags admin administrator  # 赋予最高权限
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"  # 全权限配置
# 防火墙配置(云环境需同步安全组规则)
firewall-cmd --add-port={5672,15672}/tcp --permanent
firewall-cmd --reload

4. 访问验证

通过浏览器访问 http://服务器IP:15672,使用 admin/Admin@1234 登录,确保看到集群状态与队列管理界面。

三、JDK 8 环境部署(生产环境最佳实践)

1. 官方二进制包安装

bash

# 下载Oracle官方RPM包(适配x86_64架构)
wget https://download.oracle.com/otn_pub/java/jdk/8u441-b07/0e0889d1833a4fbb96d02ec8c376641e/jdk-8u441-linux-x64.rpm
# 静默安装
rpm -ivh --force jdk-8u441-linux-x64.rpm

2. 环境变量配置

bash

# 编辑系统配置
vim /etc/profile
# 添加尾部内容
export JAVA_HOME=/usr/java/jdk1.8.0_441
export PATH=$JAVA_HOME/bin:$PATH
# 生效配置
source /etc/profile
# 验证安装
java -version  # 应输出1.8.0_441版本信息

四、Tomcat 9 部署(两种主流方案对比)

方案一:RPM 包快速部署(适合欧拉生态)

bash

# 华为云镜像站下载
wget https://repo.huaweicloud.com/hce/2.0/updates/x86_64/Packages/tomcat-9.0.96-3.hce2.noarch.rpm
# 安装及依赖处理
yum -y localinstall --skip-broken tomcat-9.0.96-3.hce2.noarch.rpm
# 启动服务
systemctl start tomcat
systemctl enable tomcat  # 开机自启

方案二:源码包自定义部署(适合定制化需求)

bash

# 下载Apache官方包
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.102/bin/apache-tomcat-9.0.102.tar.gz
# 解压到指定目录
tar -zxvf apache-tomcat-9.0.102.tar.gz -C /usr/local/
ln -s /usr/local/apache-tomcat-9.0.102 /usr/local/tomcat
# 启动与停止
/usr/local/tomcat/bin/startup.sh
/usr/local/tomcat/bin/shutdown.sh

安全增强配置

bash

# 禁用默认manager账户(生产环境必做)
vim /usr/local/tomcat/conf/tomcat-users.xml
# 添加管理员账户(示例)
<user username="tomcat-admin" password="StrongPassword123!" roles="manager-gui"/>

五、MySQL 8.0 生产环境部署(含高可用预处理)

1. 历史环境清理(彻底移除残留)

bash

# 卸载旧版本
rpm -e --nodeps $(rpm -qa | grep -E 'mysql|mariadb')
yum -y remove mysql* mariadb*
# 删除残留文件
find / -name mysql | xargs rm -rf

2. 官方 RPM Bundle 安装(推荐方案)

bash

# 下载MySQL 8.0.41 Bundle包
wget https://dev.mysql.com/get/mysql-8.0.41-1.el7.x86_64.rpm-bundle.tar
tar -xvf mysql-8.0.41-1.el7.x86_64.rpm-bundle.tar
# 按顺序安装依赖
rpm -ivh mysql-community-common-8.0.41-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.41-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.41-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.41-1.el7.x86_64.rpm

3. 核心配置优化(InnoDB 引擎优化)

conf

# vim /etc/my.cnf
[mysqld]
port=3306
bind-address=0.0.0.0          # 允许远程连接
default_time_zone="+8:00"     # 北京时间
character-set-server=utf8mb4  # 支持Emoji
collation-server=utf8mb4_general_ci
innodb_buffer_pool_size=4G    # 建议设置为物理内存的50%-70%
max_connections=2000         # 连接数限制
slow_query_log=ON            # 慢查询日志
long_query_time=2            # 慢查询阈值2秒

4. 初始化与安全设置

bash

# 初始化数据库(生成随机密码)
mysqld --initialize --console  # 记录临时密码
# 启动服务
systemctl start mysqld
# 安全加固
mysql_secure_installation  # 按向导设置密码策略、删除匿名用户等

5. 远程访问配置

sql

# 登录MySQL(使用临时密码)
mysql -u root -p
# 修改root用户为全IP访问
USE mysql;
UPDATE user SET host='%' WHERE user='root';
FLUSH PRIVILEGES;
EXIT;
# 防火墙配置
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload

六、生产环境部署 checklist

检查项标准要求验证命令
Redis 哨兵集群至少 2 个哨兵节点达成共识redis-cli info sentinel
RabbitMQ 用户权限管理员账户具备全权限rabbitmqctl list_permissions
JDK 环境变量全局生效且版本正确java -version
Tomcat 管理界面非默认端口且账户强密码浏览器访问验证
MySQL 慢查询日志已开启且阈值合理SHOW VARIABLES LIKE 'slow_query_log';
防火墙规则仅开放必要端口(如 6379/26379/5672/15672/3306)firewall-cmd --list-all
服务自启动所有服务配置 systemd 开机启动systemctl list-unit-filesgrep enabled

七、常见故障处理指南

  1. Redis 哨兵无法选举

    • 检查sentinel.conf中主节点 IP 是否为内网真实 IP(禁止使用 127.0.0.1)
    • 确认各节点时间同步(ntp 服务必须运行)
  2. RabbitMQ 无法远程连接

    • 禁用/etc/rabbitmq/rabbitmq.conf中的 loopback_users 配置
    • 检查安全组规则是否放行 5672 端口(TCP 协议)
  3. MySQL 连接报错 1045

    • 确认require_secure_transport未启用(欧拉系统默认关闭)
    • 使用mysql_native_password认证方式而非 caching_sha2_password

结语

本文提供的部署方案经华为云官方镜像站与 Oracle/MySQL 官方文档双重校验,覆盖从基础环境准备到生产级配置优化的全流程。在实际部署中,建议结合企业监控体系(如 Prometheus+Grafana)实现对各服务的实时状态监测,并通过 Ansible 等自动化工具实现多节点批量部署,提升运维效率。关注后续章节,我们将深入探讨各组件的性能调优与容灾方案设计。

相关文章:

  • 计算机视觉】OpenCV项目实战:eye_mouse_movement:基于opencv实战眼睛控制鼠标
  • Oracle — 数据管理
  • Faiss 索引深度解析:从基础到实战
  • 文旅田园康养小镇规划设计方案PPT(85页)
  • RabbitMQ-高级特性1
  • 如何避免双击时触发单击事件
  • Springboot+Vue+Mybatis-plus-Maven-Mysql项目部署
  • Kepware价格大概是多少?在哪里可以下载正版试用?
  • 李沐《动手学深度学习》 | 多层感知机
  • WebRTC工作原理详细介绍、WebRTC信令交互过程和WebRTC流媒体传输协议介绍
  • 大模型应用开发之模型架构
  • 101 alpha——8 学习
  • 数字信号处理|| 离散序列的基本运算
  • 江西同为科技有限公司受邀参展2025长江流域跨博会
  • 【Linux操作系统】第一弹——Linux基础篇
  • 切比雪夫不等式详解
  • SQL JOIN 关联条件和 where 条件的异同
  • PostgreSQL 表空间占用分析与执行计划详解
  • 【时时三省】(C语言基础)二维数组举例
  • python调用国税乐企直连接口开数电票之额度管理
  • 上财发布“AI+课程体系”,人工智能如何赋能财经教育?
  • 巴基斯坦首都及邻近城市听到巨大爆炸声
  • 习近平会见古巴国家主席迪亚斯-卡内尔
  • 可量产9MWh超大容量储能系统亮相慕尼黑,宁德时代:大储技术迈入新时代
  • 蔡达峰:推动食品安全法全面有效实施,为维护人民群众身体健康提供有力法治保障
  • 早期投资人蜂巧资本清仓泡泡玛特套现超22亿港元,称基金即将到期