怎样在麒麟V10国产操作系统上成功编译安装MySQL 8.0?

秋萱酱_1198

秋萱酱_1198

2026-10-30

741人浏览

原创

麒麟V10上不能源码编译MySQL 8.0,因官方未适配其定制glibc(2.28/2.34)及ICU 69+/OpenSSL 3.0+头文件,cmake阶段频报std::filesystem缺失、libatomic链接失败等错误,且运行时易触发GLIBCXX_3.4.29缺失和Segmentation fault。

怎样在麒麟v10国产操作系统上成功编译安装mysql 8.0?

mysqld 二进制部署是麒麟V10上最稳、最可控的方式;不建议在麒麟V10上源码编译 MySQL 8.0——官方未提供针对 Kylin V10 的 glibc 和内核头文件适配支持,实测中 cmake 阶段频繁报 std::filesystem 缺失、libatomic 链接失败、icu 版本冲突等错误,且耗时超 2 小时仍难通过。


为什么不能直接源码编译?

麒麟V10(SP1/SP3)基于 CentOS 8 衍生,但其 glibc 实际为定制版(如 glibc-2.28 或 2.34),而 MySQL 8.0.33+ 官方源码要求 glibc >= 2.29 且依赖完整 ICU 69+ 和 OpenSSL 3.0+ 头文件。麒麟仓库中默认不提供这些开发组件,手动补全后仍会触发 libstdc++.so.6: version `GLIBCXX_3.4.29' not found 类运行时错误。

  • 官方只对 mysql-8.0.xx-linux-glibc2.28-x86_64.tar.xz 这类二进制包做 Kylin V10 x86_64 兼容性验证
  • make 过程中 innodb 子模块常因原子操作指令集不匹配(如缺少 cmpxchg16b 检测逻辑)静默失败
  • 即使强行编译成功,mysqld 启动时大概率报 Segmentation fault (core dumped),调试难度极高

该用哪种安装包?认准 glibc 和架构后缀

必须严格匹配系统 glibc 版本和 CPU 架构,否则 mysqld 直接无法执行:

  • 先查真实环境:ldd --version 看 glibc 主版本(如 2.28),uname -m 确认是 x86_64
  • 去 MySQL 官网归档页下载对应包:mysql-8.0.43-linux-glibc2.28-x86_64.tar.xz(不是 .rpm,也不是 glibc2.12 或 glibc2.34)
  • 避免使用 .tar.gz 包:它体积大、解压慢,且部分 Kylin V10 的 gzip 版本对长路径支持异常
  • 跳过 mysql-test 和 debuginfo 包:纯浪费磁盘空间,无实际部署价值

初始化时 --lower-case-table-names=1 必须加,且只能加一次

这是麒麟V10上最容易翻车的点:MySQL 8.0 默认开启表名大小写敏感(lower_case_table_names=0),但麒麟文件系统(ext4 + 默认挂载参数)实际不区分大小写。若初始化时不显式指定,后续建库/导入 SQL 时可能报 Table 'xxx' doesn't exist,而 SHOW TABLES 却能列出该表。

kashen-mysql DDLtoExcel
kashen-mysql DDLtoExcel

解析 MySQL 8.0 的 DDL 脚本,并将表结构导出为 Excel 格式。适用于用户需将 MySQL 的 `CREATE TABLE` 语句转换为结构化的 Excel 文件场景,导出内容包含字段名、数据类型、长度及精度等信息。支持多张表的批量处理,每张表对应 Excel 中的一个独立工作表。适用于数据库文档编写、数据字典生成及模式分析等任务。

下载
  • 初始化命令必须带参数:bin/mysqld --initialize --user=mysql --lower-case-table-names=1 --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
  • 该参数仅在首次初始化生效;改配置文件再重启无效,强行修改会导致 mysqld 启动失败并循环打印 InnoDB: Assertion failure
  • 若已初始化错,唯一办法是删掉整个 data/ 目录,清空 log/,重新执行初始化

服务注册后启动失败?重点查 socket 和 pid-file 路径权限

麒麟V10 的 systemd 对路径权限更敏感,mysqld 常因目录不可写而静默退出,journalctl -u mysql 只显示 Failed with result 'timeout',实际日志在 log-error 文件里。

  • socket 路径不能放在 /tmp:麒麟安全策略限制非 root 进程在 /tmp 创建 socket 文件
  • pid-file 不能指向 /run/mysqld/:该目录默认属主为 root:root,mysql 用户无权写入
  • 正确做法是统一放在 /usr/local/mysql/data/ 下,并确保该目录 chown -R mysql:mysql
  • 检查 SELinux 状态:getenforce 若为 Enforcing,临时设为 Permissive(setenforce 0),否则 mysqld 会被拒绝访问 datadir

最终跑通的关键,往往卡在初始化参数是否写对、socket 是否避开 /tmp、以及 SELinux 是否被忽略——这三个点没踩准,其他步骤做得再细也白搭。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
视频服务器配置参数有哪些
视频服务器配置参数有哪些

视频服务器配置参数有处理器、内存、存储、视频编解码器、网络接口、视频输入输出接口、操作系统、安全性、环境适应性和成本。在搭建视频服务器时,需要根据实际需求和预算,合理选择这些参数,以实现高性能、高稳定性和低成本的目标。

2023.10.17

4980

11

linux的操作系统介绍
linux的操作系统介绍

Linux是一个灵活、稳定、安全的操作系统,适用于各种不同的应用场景,从个人电脑到服务器和嵌入式系统。想了解更多Linux的相关内容,可以阅读本专题下面的文章。

2024.03.20

3866

12

Linux操作系统的主要用途
Linux操作系统的主要用途

Linux操作系统用途广泛,包括:服务器运营,软件开发,科学研究和教育,嵌入式系统,以及个人电脑和笔记本电脑。想了解更多Linux的相关内容,可以阅读本专题下面的文章。

2024.03.21

6879

8

linux操作系统的作用
linux操作系统的作用

linux操作系统在以下领域发挥着关键作用:服务器和云计算;嵌入式系统;个人电脑和笔记本电脑;超级计算;其他领域等等。想了解更多linux操作系统的相关内容,可以阅读本专题下面的文章。

2024.04.12

3195

5

有哪些常见的网络操作系统
有哪些常见的网络操作系统

常见的网络操作系统有windows server、linux、unix、macos server、freebsd、cisco ios、juniper junos和hp-ux等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.09.12

3764

6

32位操作系统怎么改成62位的
32位操作系统怎么改成62位的

要将 32 位操作系统升级到 64 位,需要遵循以下步骤:1. 检查硬件和软件兼容性;2. 备份数据;3. 获取 64 位操作系统;4. 创建可启动安装媒体;5. 从安装媒体启动计算机;6. 选择“升级”选项;7. 完成安装。

2025.04.02

3623

9

数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

2023.10.12

4623

8

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.27

951

4

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

2024.02.23

1209

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 193人学习