不推荐源码安装,因官方自8.0.23起已停供可构建源码包,麒麟V10缺libaio、numactl-libs等关键运行时依赖,且RPM包存在强依赖链,唯一可靠方式是按序安装MySQL RPM Bundle并清理旧环境。

源码安装 MySQL 8.0 在银河麒麟 V10 上不推荐,且极大概率失败。原因很直接:MySQL 官方自 8.0.23 起已停止提供源码包中的二进制构建支持(即不再发布 mysql-8.0.x.tar.gz 形式的“可直接 cmake 构建”的完整源码包),当前官网仅提供带预编译依赖的 mysql-8.0.x-1.el7.x86_64.rpm-bundle.tar 或 .deb 包,以及仅含头文件/文档的 minimal source tarball(无法用于构建 server)。
你真正能走通的路径,只有 RPM 离线安装 —— 这不是妥协,而是银河麒麟 V10 的现实约束。
rpm -ivh 安装必须按顺序执行
MySQL RPM Bundle 中的包存在强依赖链,mysql-community-server 依赖 mysql-community-client,后者又依赖 mysql-community-libs 和 mysql-community-common。跳过或乱序安装会报类似错误:
error: Failed dependencies: mysql-community-common(x86-64) >= 8.0.45 is needed by mysql-community-client-8.0.45-1.el7.x86_64
正确顺序(x86_64 系统):
mysql-community-common-8.0.45-1.el7.x86_64.rpmmysql-community-client-plugins-8.0.45-1.el7.x86_64.rpmmysql-community-libs-8.0.45-1.el7.x86_64.rpmmysql-community-client-8.0.45-1.el7.x86_64.rpmmysql-community-icu-data-files-8.0.45-1.el7.x86_64.rpmmysql-community-server-8.0.45-1.el7.x86_64.rpm-
mysql-community-devel-8.0.45-1.el7.x86_64.rpm(可选,仅开发需要)
每一步都用 rpm -ivh --nodeps(ARM 版可加 --force),但注意:--nodeps 是为绕过缺失系统级依赖(如 libaio),不是用来跳过 MySQL 自身 RPM 依赖。
面向 CRM 系统的 MySQL 8 数据库模式设计。当用户需要为客户关系管理(CRM)系统设计、评审、优化或生成数据库模式时,应使用此项技能。
麒麟 V10 必装的底层依赖不能靠源码解决
即使你硬要从 CMake 开始编译(比如下载了 mysql-server git repo),也会卡在以下环节:
-
libaio:MySQL 启动时强制要求,麒麟 V10 默认不自带,需提前离线装libaio-0.3.110-8.el8.x86_64.rpm -
numactl-libs:InnoDB 内存分配优化依赖,缺失会导致mysqld启动后立即 segfault -
ncurses-compat-libs:client 命令行工具依赖,否则mysql命令运行时报libncursesw.so.6: cannot open shared object file
这些是二进制兼容层问题,不是改 CMakeLists.txt 就能绕开的。你没法用源码“编译出”一个不依赖 libaio 的 mysqld。
systemctl start mysqld 启动失败的三个高频原因
安装完 RPM 后,systemctl start mysqld 报错,90% 出在以下三处:
/var/lib/mysql目录残留:卸载 MariaDB 时没清干净,导致初始化失败,错误日志里有mysqld: Can't create/write to file '/var/lib/mysql/ibdata1'
→ 执行rm -rf /var/lib/mysql/*(确保空目录,不要删目录本身)/etc/my.cnf冲突:麒麟预装配置可能残留,或 RPM 安装后自动生成了不兼容项(如default_authentication_plugin = caching_sha2_password)
→ 先mv /etc/my.cnf /etc/my.cnf.bak,再启动;成功后再按需补配置SELinux 强制拦截:麒麟 V10 默认开启,
setenforce 0可临时验证,若恢复后仍需运行,得配策略:semanage fcontext -a -t mysqld_db_t "/var/lib/mysql(/.*)?"restorecon -Rv /var/lib/mysql
最省事的做法:首次启动前先确认 ls -ld /var/lib/mysql 权限为 drwxr-x---. 5 mysql mysql,且属主是 mysql 用户。
源码安装在麒麟 V10 上不是“技术可行但麻烦”,而是路径不存在。官方不提供可构建源码、系统缺关键 runtime 依赖、RPM 机制深度耦合发行版 ABI —— 这三点决定了你唯一可靠的选择,就是老老实实解压 RPM Bundle,按顺序装,清干净旧环境,再调 systemd。别在 cmake -DCMAKE_INSTALL_PREFIX=... 上浪费时间。

















