不推荐源码安装MySQL 8.0——因其易因CMake/Boost/SSL/libaio等依赖冲突失败,而官方RPM包已深度适配openEuler 22.03/24.03,可自动解决依赖、集成systemd、SELinux及日志系统,真正开箱即用。

MySQL 8.0 在 OpenEuler 上**不推荐源码安装**——它既无必要,又极易失败。官方 RPM 包和二进制包已充分适配 openEuler(尤其是 22.03/24.03),而源码编译会直面 CMake 版本冲突、Boost 库链接错误、SSL 依赖不匹配、libaio 头文件缺失等硬性障碍,且无法享受 systemd 服务管理、日志集成、SELinux 策略自动加载等系统级支持。
下面直接说清三个关键实操点:
为什么源码安装在欧拉上大概率卡在 configure 阶段
OpenEuler 默认的 cmake 版本(如 3.22)低于 MySQL 8.0.33+ 要求的最低 3.24;手动升级 cmake 又会触发 gcc 和 glibc 兼容性连锁报错。更常见的是:boost 库找不到——即使你用 dnf install boost-program-options 安装了运行时库,源码编译仍要求完整的 boost 头文件和静态库,而欧拉仓库不提供 boost-devel 的完整子包。典型错误信息是:CMake Error at cmake/boost.cmake:95 (MESSAGE): You need Boost 1.70 or newer,但 rpm -qa | grep boost 显示已装,实际是路径未被 cmake 正确识别。
如果你坚持要编译,必须绕开的三个依赖陷阱
以下操作在 openEuler 22.03/24.03 x86_64 上验证可行(aarch64 需额外处理 openssl 构建):
面向 CRM 系统的 MySQL 8 数据库模式设计。当用户需要为客户关系管理(CRM)系统设计、评审、优化或生成数据库模式时,应使用此项技能。
- 先用
dnf install -y gcc-c++ cmake make ncurses-devel openssl-devel libtirpc-devel rpcgen装基础工具,注意不要装boost-devel(它会导致链接失败),改用 MySQL 源码自带的 Boost:解压源码后进入目录,执行./configure --with-boost=boost -
libaio必须从源码编译安装:下载libaio-0.3.113.tar.gz,./configure --prefix=/usr && make && make install,否则mysqld启动时报undefined symbol: io_setup -
openssl版本不能高于系统默认(openEuler 24.03 自带 OpenSSL 3.2),否则编译通过但运行时报SSL_CTX_set_ciphersuites:unknown cipher;禁用 TLS 1.3 编译参数:-DWITH_SSL=system -DOPENSSL_TLS_VERSION=1.2
RPM 安装比源码快 10 倍,且真正“开箱即用”
用官方 RPM 包(如 mysql-community-server-8.0.35-1.el8.x86_64.rpm)才是欧拉生产环境标准做法:
- 依赖由
dnf自动解决,libaio、numactl-libs、openssl-libs全部命中本地仓库版本 - 安装后自动生成
/etc/my.cnf、/var/log/mysqld.log、/var/lib/mysql权限结构,无需手动 chown -
systemctl start mysqld直接启动,SELinux 策略(mysql_euler.pp)可一键加载,避免Permission denied报错 - 临时密码写入
/var/log/mysqld.log,首次登录强制改密逻辑由服务内置控制,不依赖外部脚本
systemd、日志不落 journald、SELinux 拒绝访问的实例,远不如用 dnf install mysql-community-server 加一条 systemctl enable --now mysqld 来得可靠。真正的复杂点从来不是“能不能编译过”,而是“编译出来的东西能否被欧拉系统原生接纳”。

















