mysql在ARM架构服务器上如何编译安装_适配华为鲲鹏与飞腾处理器

陌瑶君_1044

陌瑶君_1044

2026-04-23

549人浏览

原创

必须显式指定-dcmake_system_processor=aarch64等关键参数,安装libatomic,禁用bundled openssl和libedit,并修复libtinfo.so版本及/var/run/mysqld权限问题,否则编译失败或启动崩溃。

mysql在arm架构服务器上如何编译安装_适配华为鲲鹏与飞腾处理器

直接编译安装 MySQL 在华为鲲鹏(Kunpeng)或飞腾(Phytium)这类 ARM64 服务器上,不能照搬 x86_64 的 cmake 参数和依赖配置——默认参数会触发架构误判、链接失败或运行时崩溃。必须显式锁定 aarch64 目标,并绕过几个 ARM 特有陷阱。

确认系统架构与基础工具链

鲲鹏/飞腾服务器虽属 ARM64,但部分国产发行版(如 EulerOS、Kylin V10、OpenAnolis)仍可能默认启用旧版 gcc 或缺失关键头文件。先验证:

  • uname -m 必须输出 aarch64(不是 armv7l 或 armv8l)
  • gcc --version ≥ 10.2;低于此版本在 __int128 和 __atomic 内建函数上会编译失败
  • ldd --version 对应的 glibc ≥ 2.28(飞腾某些定制内核需 ≥ 2.32)
  • 必须安装 libatomic:鲲鹏常见报错 undefined reference to '__atomic_store_16' 就源于此,执行 sudo yum install libatomic 或 sudo apt install libatomic1

cmake 配置必须加的关键参数

ARM64 下 cmake 若不强制指定目标平台,会 fallback 到 generic 架构,导致生成非原生指令或链接错误。以下参数缺一不可:

Miller CSV TSV JSON 数据处理器
Miller CSV TSV JSON 数据处理器

Miller (mlr) 是一个命令行工具,用于查询、整形和重新格式化名称索引数据,如 CSV、TSV、JSON 和 JSON Lines。它将 awk、sed、cut、join 和 sort 的功能整合到一个专为结构化数据处理而构建的单一工具中。

下载
  • -DCMAKE_SYSTEM_PROCESSOR=aarch64:这是核心,否则 CMAKE_SYSTEM_PROCESSOR 可能为 generic,引发后续优化失效
  • -DWITH_SSL=system:禁用 bundled OpenSSL/BoringSSL,后者对 ARM64 的 AEAD 指令适配不全,易在 handshake 阶段 segfault
  • -DWITH_LIBEDIT=OFF:ARM 平台下 libedit 静态链接常因 symbol 版本冲突失败,且 MySQL CLI 不依赖它也能工作
  • -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost:国产系统中 Boost 常缺失或版本错位,让 cmake 自动下载可规避兼容问题
  • 避免 -DENABLE_DTRACE=ON:ARM64 上 dtrace 支持不完整,开启后 configure 阶段即报错

编译与启动阶段的典型报错修复

即使 cmake 成功,make 后启动仍可能卡住或崩溃,常见于动态链接与权限场景:

  • mysqld: error while loading shared libraries: libtinfo.so.5: cannot open shared object file:国产系统(如 Kylin V10 SP1)已升级到 libtinfo.so.6,但 MySQL 二进制仍硬编码 v5。不用软链,改用:patchelf --replace-needed libtinfo.so.5 libtinfo.so.6 /usr/local/mysql/bin/mysqld
  • 启动日志停在 Starting MySQL database server:检查 pid-file 路径(如 /var/run/mysqld/mysqld.pid)所属目录是否为 tmpfs 且 mysql 用户无写权限。飞腾云主机常挂载 /var/run 为 tmpfs mode=0755,需提前执行:sudo mkdir -p /var/run/mysqld && sudo chown mysql:mysql /var/run/mysqld
  • Table 'mysql.plugin' doesn't exist:说明初始化未完成或 datadir 权限错误。确保 mysqld --initialize 命令中 --user=mysql 与实际运行用户一致,且 datadir 所有者为 mysql:mysql,而非仅 root

鲲鹏/飞腾特有性能调优点

ARM64 多核调度与内存一致性模型不同于 x86,MySQL 默认参数在高并发下易出现锁争用或刷盘延迟:

  • innodb_buffer_pool_instances 建议设为 CPU socket 数 × 2(鲲鹏 920 通常为 2–4,飞腾 D2000 为 2),避免单实例锁瓶颈
  • innodb_flush_method 强烈建议用 o_direct(而非 fsync),ARM 存储栈对 direct I/O 优化更充分
  • 禁用 numa_interleave:鲲鹏 BIOS 中若开启 NUMA balancing,MySQL 进程可能跨节点分配内存,导致延迟抖动;启动前加 numactl --interleave=all 或在 systemd service 文件中加 ExecStart=/usr/bin/numactl --interleave=all /usr/local/mysql/bin/mysqld ...
  • innodb_log_file_size 不宜过大(如 > 512MB):ARM 平台 ext4/xfs 日志重放路径较慢,大日志文件重启恢复时间显著拉长

ARM 上编译 MySQL 最容易被忽略的是:cmake 阶段不显式声明 aarch64 就等于没开始;而启动失败八成出在 libtinfo 版本或 /var/run 权限上,不是配置文件写错了。

相关文章

数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载

相关标签:

mysql 处理器 华为

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

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

940

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3012

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

996

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

889

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

454

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2736

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5112

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

807

5

热门下载

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

精品课程

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

共1课时 | 188人学习