news 2026/7/14 20:39:44

华为欧拉OpenEuler系统离线部署MySQL 8:从环境适配到生产级配置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
华为欧拉OpenEuler系统离线部署MySQL 8:从环境适配到生产级配置

1. 环境准备与版本确认

在华为欧拉OpenEuler系统上部署MySQL 8之前,首先要确保系统环境适配。OpenEuler作为华为推出的企业级Linux发行版,与CentOS 8保持高度兼容性。我曾在多个生产环境中验证过,OpenEuler 21.09/22.03 LTS版本与MySQL 8.0.33的兼容性最佳。

系统版本检查

cat /etc/os-release

典型输出应包含:

NAME="openEuler" VERSION="22.03 LTS" ID="openEuler"

CPU架构确认

lscpu

特别注意Architecture字段,x86_64与aarch64的安装包不可混用。最近在某个政务云项目就遇到团队误下载x86包导致安装失败的情况。

依赖包检查

rpm -q libaio numactl-libs

若未安装,需提前准备好这些基础依赖的离线包。建议建立本地yum源仓库,我在某金融机构项目中使用createrepo工具构建的本地仓库成功解决了复杂依赖问题。

2. 离线安装包获取与处理

离线环境部署的核心难点在于依赖关系处理。经过多次实践,我总结出以下可靠方案:

官方下载策略

  1. 访问MySQL官方仓库(https://dev.mysql.com/downloads/mysql/)
  2. 选择对应版本(如Red Hat Enterprise Linux 8 / CentOS 8)
  3. 下载完整的RPM Bundle包(约600MB)

关键安装包清单

mysql-community-common-8.0.33 mysql-community-client-plugins-8.0.33 mysql-community-libs-8.0.33 mysql-community-client-8.0.33 mysql-community-icu-data-files-8.0.33 mysql-community-server-8.0.33

传输技巧

  • 使用scp或SFTP工具上传至目标服务器
  • 大文件传输建议分卷压缩(split -b 100M
  • 某次军工项目因安全限制,我们甚至采用光盘刻录方式传递安装包

3. 安装流程与依赖解决

解压安装包

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

安装顺序与技巧

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

常见问题处理

  1. 依赖冲突时添加--nodeps --force参数(慎用)
  2. 缺少libssl时,需下载openssl-1.1.1k离线包
  3. 某次遇到libcrypto冲突,通过rpm -e --nodeps移除冲突包后解决

4. 生产级配置优化

目录规划建议

mkdir -p /data/mysql/{data,logs/{binlog,slowlog}} chown -R mysql:mysql /data/mysql

my.cnf核心配置(适用于8C32G服务器):

[mysqld] # 基础设置 datadir=/data/mysql/data socket=/data/mysql/mysql.sock log-error=/data/mysql/logs/mysql.log pid-file=/var/run/mysqld/mysqld.pid # 字符集 character-set-server=utf8mb4 collation-server=utf8mb4_general_ci # InnoDB优化 innodb_buffer_pool_size=16G innodb_log_file_size=2G innodb_flush_method=O_DIRECT innodb_io_capacity=2000 # 连接控制 max_connections=500 thread_cache_size=100 # 日志配置 slow_query_log=1 slow_query_log_file=/data/mysql/logs/slowlog/mysql-slow.log long_query_time=1 log-bin=/data/mysql/logs/binlog/mysql-bin binlog_format=ROW binlog_expire_logs_seconds=604800

安全加固措施

  1. 初始化后立即修改root密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Complex@Password123!';
  1. 创建专用管理账号:
CREATE USER 'dba_admin'@'%' IDENTIFIED BY 'Admin@Secure456'; GRANT ALL PRIVILEGES ON *.* TO 'dba_admin'@'%' WITH GRANT OPTION;

5. 初始化与故障排查

数据目录初始化

mysqld --initialize --user=mysql --datadir=/data/mysql/data

获取临时密码

grep 'temporary password' /data/mysql/logs/mysql.log

常见错误解决方案

  1. 目录权限问题
chown -R mysql:mysql /data/mysql chmod 750 /data/mysql
  1. SELinux导致的问题
# 临时关闭 setenforce 0 # 永久关闭 vim /etc/selinux/config SELINUX=disabled
  1. 服务启动失败排查
journalctl -xe -u mysqld tail -n 100 /data/mysql/logs/mysql.log

6. 备份方案与日常维护

逻辑备份脚本

#!/bin/bash BACKUP_DIR=/backup/mysql DATE=$(date +%F) MYSQL_CMD="mysql -uroot -pComplex@Password123!" MYSQLDUMP_CMD="mysqldump -uroot -pComplex@Password123! --single-transaction" mkdir -p $BACKUP_DIR/$DATE for DB in $($MYSQL_CMD -e "SHOW DATABASES" | grep -Ev "(Database|schema|mysql|sys)"); do $MYSQLDUMP_CMD $DB | gzip > $BACKUP_DIR/$DATE/$DB.sql.gz done # 清理30天前备份 find $BACKUP_DIR -type d -mtime +30 -exec rm -rf {} \;

定时任务配置

0 2 * * * /usr/local/bin/mysql_backup.sh

监控建议

  1. 配置Prometheus的mysqld_exporter
  2. 关键指标报警:连接数、QPS、缓冲池命中率
  3. 定期检查慢查询日志

7. 性能调优实战经验

根据多年运维经验,分享几个关键调优参数:

内存相关

innodb_buffer_pool_instances=8 innodb_buffer_pool_chunk_size=128M

IO优化

innodb_flush_neighbors=0 # SSD环境建议关闭 innodb_read_io_threads=8 innodb_write_io_threads=4

事务隔离

transaction_isolation=READ-COMMITTED

在某个电商平台项目中,通过调整innodb_io_capacity从200提升到2000,使高峰期订单处理速度提升了40%。但要注意这个值需要根据实际磁盘性能调整,盲目设高反而会导致性能下降。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 20:38:37

计算机毕业设计之jsp网吧管理系统

随着我国经济的高速发展与人们生活水平的日益提高,人们对生活质量的追求也多种多样。尤其在人们生活节奏不断加快的当下,人们更趋向于足不出户解决各种问题,网吧管理展现了其蓬勃生命力和广阔的前景。与此同时,为解决用户需求&…

作者头像 李华
网站建设 2026/7/14 20:37:46

Hermes Agent:从意图理解到自动化工作流的工程实践

那天早上,我正对着电脑屏幕发呆——Hacker News 上又有几条热门技术新闻想看,但手动点开、翻译、总结再发给自己,这套流程已经重复了快一个月。就在我准备写第 N 个爬虫脚本时,同事扔过来一句话:“试试 Hermes Agent 吧…

作者头像 李华
网站建设 2026/7/14 20:35:47

纯CSS无缝跑马灯进阶:从原理到实战,打造横竖双向无限轮播

1. 跑马灯效果的前世今生跑马灯效果最早来源于传统霓虹灯广告牌,通过灯光的移动吸引路人注意。在网页设计中,这种动态展示方式被广泛用于新闻头条、促销广告等需要突出显示的内容区域。相比传统的静态展示,跑马灯能有效提升30%以上的用户注意…

作者头像 李华
网站建设 2026/7/14 20:34:12

海南超级AI医院:技术架构与医疗效率革命

1. 海南AI医疗的崛起背景海南作为中国唯一的自由贸易港,近年来在医疗健康领域持续发力。2021年,《海南自由贸易港建设总体方案》明确提出要"大力发展医疗健康产业",为AI医疗的发展提供了政策基础。而"超级AI医院"概念的提…

作者头像 李华
网站建设 2026/7/14 20:32:41

Windows USB设备管理与故障修复技术详解

1. USB存储设备管理工具的核心功能解析 USB存储设备管理工具是一款针对Windows系统设计的实用程序,主要解决两大核心问题:设备启用/禁用控制与故障修复。在实际工作中,我们经常遇到需要临时禁用USB端口防止数据泄露,或是U盘插入后…

作者头像 李华
网站建设 2026/7/14 20:26:39

Android集成Unity时SO库加载失败:Gradle配置与解决方案详解

1. 项目概述:当Unity遇上Android,SO库加载的“水土不服”如果你正在开发一个集成了Unity引擎的Android应用,并且选择将Unity导出的unityLibrary模块作为依赖库引入到你的主App工程中,那么你很可能已经或即将遇到一个经典的“拦路虎…

作者头像 李华