如何在国产麒麟操作系统上通过源码编译安装MySQL 8.0?

P粉602998670

P粉602998670

2026-07-14

1014人浏览

原创

源码编译在麒麟os上安装mysql 8.0可行但非首选,仅适用于需定制编译选项、打补丁、修改内核级行为或glibc版本严重不匹配(如系统glibc<2.28)等特定场景,否则应优先使用官方tar.xz或rpm包。

如何在国产麒麟操作系统上通过源码编译安装mysql 8.0?

源码编译在麒麟OS上装MySQL 8.0可行,但不是首选——它耗时长、依赖多、容易卡在cmakerpcgen环节,除非你明确需要定制编译选项(比如启用特定加密算法、裁剪模块)或系统完全离线且无RPM/tar.xz安装条件。

确认是否真需要源码编译

麒麟V10(尤其是SP2/SP3)对RPM和二进制tar.xz支持成熟。源码编译只在两种场景下必要:一是要打补丁或修改内核级行为;二是目标环境glibc版本与预编译包严重不匹配(如系统glibc 2.17,而MySQL 8.0.4x要求≥2.28)。否则建议优先用mysql-8.0.45-linux-glibc2.28-x86_64.tar.xz或RPM Bundle。

  • 检查当前glibc版本:ldd --version,输出低于2.28时才考虑源码编译适配
  • 确认已有包管理器能否解决依赖:yum search cmakeyum search rpcgen,若都找不到或版本太旧(如cmake
  • 内存不足8GB或磁盘空间<20GB时,编译过程大概率失败,make -j$(nproc)会直接OOM

必须装齐的构建依赖(Kylin V10 SP3实测)

麒麟V10默认仓库缺失关键工具,尤其rpcgen和新版cmake。不能只靠yum install gcc gcc-c++ make就开工。

Android 操作系统的介绍 中文WORD版
Android 操作系统的介绍 中文WORD版

本文档主要讲述的是Android 操作系统的介绍;Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统,早期由Google开发,后由开放手持设备联盟(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以Java编写。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看

下载
  • 先装基础工具链:yum install -y gcc gcc-c++ make bzip2-devel ncurses-devel openssl-devel readline-devel perl-Data-Dumper gettext-devel
  • cmake必须≥3.14:yum install -y cmake3(麒麟源中叫cmake3,运行时用cmake3命令)
  • rpcgen需手动编译:从https://codeload.github.com/thkukuk/rpcsvc-proto/tar.gz/refs/tags/v1.4.3下载,解压后执行./autogen.sh && ./configure && make && make install,验证:rpcgen --version输出1.4.3
  • Boost库不用单独装:下载mysql-boost-8.0.42.tar.gz(官网Archived Versions里选“Source Code + Boost”),解压后Boost已包含在boost/子目录

cmake配置阶段的关键参数

麒麟系统默认不启用systemd服务单元生成,且/usr/local/mysql路径权限常被SELinux限制,cmake命令必须显式绕过。

  • 进入解压后的源码目录(如/usr/local/src/mysql-8.0.42),创建build子目录并进入:mkdir build && cd build
  • 执行cmake3而非cmake,关键参数:
    cmake3 .. \
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
    -DMYSQL_DATADIR=/usr/local/mysql/data \
    -DSYSCONFDIR=/etc \
    -DWITH_BOOST=../boost \
    -DWITH_SYSTEMD=OFF \
    -DFORCE_INSOURCE_BUILD=ON \
    -DCMAKE_C_FLAGS="-O2 -g -fPIC" \
    -DCMAKE_CXX_FLAGS="-O2 -g -fPIC"
  • -DWITH_SYSTEMD=OFF是重点:麒麟V10的systemd版本与MySQL 8.0的unit模板不兼容,启用会导致make install失败
  • -DFORCE_INSOURCE_BUILD=ON避免因麒麟默认/tmp挂载为noexec导致configure失败

初始化与启动时的麒麟特有问题

编译安装后不能直接systemctl start mysqld,因为没生成service文件。且首次启动的密码日志位置与RPM包不同。

  • 手动初始化:/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
  • 初始密码不在/var/log/mysqld.log,而在/usr/local/mysql/data/$(hostname).err(注意不是localhost.err
  • 启动服务用脚本:/usr/local/mysql/support-files/mysql.server start,而非systemctl
  • 若报libtinfo.so.6: cannot open shared object file,说明麒麟系统缺少ncurses兼容库,执行:ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libtinfo.so.6

源码编译最大的隐性成本不是时间,而是调试依赖链——一个rpcgen缺失或cmake3版本不对,就会卡在make前。生产环境建议用tar.xz部署,仅在安全合规审计要求“可验证构建过程”时才走源码路径。

相关专题

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

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

2023.10.17

1849

11

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

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

2024.03.20

1658

12

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

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

2024.03.21

2280

8

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

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

2024.04.12

1117

5

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

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

2024.09.12

1564

6

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

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

2025.04.02

2370

9

mysql修改数据表名
mysql修改数据表名

MySQL修改数据表:1、首先查看数据库中所有的表,代码为:‘SHOW TABLES;’;2、修改表名,代码为:‘ALTER TABLE 旧表名 RENAME [TO] 新表名;’。php中文网还提供MySQL的相关下载、相关课程等内容,供大家免费下载使用。

2023.06.20

1116

6

MySQL创建存储过程
MySQL创建存储过程

存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别为CREATE PROCEDURE和CREATE FUNCTION。使用CALL语句调用存储过程智能用输出变量返回值。函数可以从语句外调用(通过引用函数名),也能返回标量值。存储过程也可以调用其他存储过程。php中文网还提供MySQL创建存储过程的相关下载、相关课程等内容,供大家免费下载使用。

2023.06.21

753

5

mongodb和mysql的区别
mongodb和mysql的区别

mongodb和mysql的区别:1、数据模型;2、查询语言;3、扩展性和性能;4、可靠性。本专题为大家提供mongodb和mysql的区别的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.18

451

5

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
6天掌握MySQL基础视频
6天掌握MySQL基础视频

共185课时 | 43.3万人学习

PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 113人学习

使用phpenv集成环境安装极致CMS
使用phpenv集成环境安装极致CMS

共2课时 | 221人学习