mysql如何部署到国产麒麟操作系统_ARM架构下的编译与安装避坑指南

梦明吖_3371

梦明吖_3371

2026-04-30

402人浏览

原创

必须先清理MariaDB残留、确认aarch64架构、修复libncurses.so.5和libssl.so.10缺失,否则MySQL无法安装启动;uname -m须输出aarch64,rpm -qa | grep -i mariadb须为空,再通过软链或compat-openssl10包解决关键依赖。

mysql如何部署到国产麒麟操作系统_arm架构下的编译与安装避坑指南

ARM版麒麟系统上装MySQL,不清理mariadb残留、不核对aarch64架构、不处理libncurses.so.5和libssl.so.10缺失,基本装不上。

确认系统架构与MariaDB残留必须一步到位

麒麟V10 ARM环境里,uname -m 输出必须是 aarch64,否则所有后续下载的MySQL包都无效。x86_64包扔进去直接报 cannot execute binary file。同时,rpm -qa | grep -i mariadb 一查一个准——只要输出非空,就说明有冲突源。

常见错误现象:安装MySQL RPM时卡在 conflicts with file from package mariadb-libs;或启动后日志里反复出现 symbol lookup error: undefined symbol: mysql_server_init。

  • 先停服务:systemctl stop mariadb 2>/dev/null、systemctl stop mysqld 2>/dev/null
  • 强制卸载全部相关包:sudo rpm -e --nodeps $(rpm -qa | grep -E 'mariadb|mysql' | grep -v mysql-community)
  • 删干净残留:rm -rf /var/lib/mysql /etc/my.cnf* /usr/lib64/libmysqlclient*
  • 验证是否清空:rpm -qa | grep -i mariadb 应无输出;ldd /usr/bin/mysql | grep "not found" 若报错,说明还有库没清或没装

libncurses.so.5 和 libtinfo.so.5 缺失怎么修

MySQL 5.7/8.x 二进制包编译时链接的是较老的 ncurses 5 系列,但麒麟V10默认带的是 libncurses.so.6.1 和 libtinfo.so.6。直接运行 mysqld --initialize 就会崩在 error while loading shared libraries: libncurses.so.5。

不能靠 yum install ncurses-compat-libs —— 麒麟V10的软件源里这个包名可能叫 ncurses-compat-libs 或压根没有;离线环境更没法自动拉。

协同养育操作系统
协同养育操作系统

协同养育操作系统(Co-Parenting OS)— 离异家庭专业协同养育支持系统。12模块覆盖接送管理、成长记忆库、孩子观察站、亲子关系粘合剂、共同挑战中心、情绪冲突观察、父母成长、成长档案馆、成长阶段引擎、风险预警、驾驶舱、被恶意攻击急救包。当用户涉及离异家庭育儿、协同养育、抚养探视、接送安排、孩子成长记录、亲子关系、离异冲突、被恶意攻击、前任矛盾等话题时触发。

下载
  • 先找系统里已有的库:find /usr/lib64 -name "libncurses.so.*" 2>/dev/null,通常看到 /usr/lib64/libncurses.so.6.1
  • 创建软链(仅限 /usr/lib64):sudo ln -s /usr/lib64/libncurses.so.6.1 /usr/lib64/libncurses.so.5
  • 同理处理 libtinfo:sudo ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5
  • 别碰 /lib64 下的系统核心库;软链目标必须是绝对路径,且不能指向符号链接本身(避免循环)

libssl.so.10 not found 的安全解法

MySQL 8.0.27+ 在ARM下常因 OpenSSL 版本不匹配报 libssl.so.10 not found。这不是版本低,而是“名字不对”——麒麟V10自带的是 libssl.so.1.1,而MySQL找的是 RHEL/CentOS 风格的旧命名。

严禁用 ln -s /usr/lib64/libssl.so.1.1 /usr/lib64/libssl.so.10 硬凑,某些场景会触发 TLS 握手失败或连接中断。

  • 正确做法:装兼容包 compat-openssl10,来源必须是可信镜像(如阿里云 CentOS Vault):wget http://mirrors.aliyun.com/centos-vault/8.5.2111/BaseOS/aarch64/os/Packages/compat-openssl10-1.0.2o-4.el8.aarch64.rpm
  • 安装时加 --nodeps:sudo rpm -ivh compat-openssl10-1.0.2o-4.el8.aarch64.rpm --nodeps
  • 验证:ls /usr/lib64/libssl.so.10* 应存在;ldd $(which mysqld) | grep ssl 不再报错
  • 注意:该包只提供兼容符号链接和基础函数,不替换系统 OpenSSL 主库,不影响其他服务

初始化与启动前必须检查的三件事

即使二进制能跑、依赖全通,mysqld --initialize 还可能静默失败,导致后续 systemctl start mysqld 一直卡在 activating。

  • 用户权限:必须用 mysql 用户初始化数据目录,不能用 root 直接跑:sudo chown -R mysql:mysql /usr/local/mysql/data
  • SELinux 状态:麒麟V10默认启用,sestatus 若为 enforcing,需临时设为 permissive 或放行 MySQL 端口与数据目录上下文
  • 配置文件路径:MySQL 8 默认不读 /etc/my.cnf,要显式指定:mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql;否则初始化会写到 /var/lib/mysql,跟 systemd 服务定义的 datadir 不一致

最易被忽略的是 datadir 权限和 SELinux 上下文——哪怕所有命令都敲对了,这两个点出问题,服务就是起不来,日志里却只有一行 Starting MySQL... FAILED!。

相关专题

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

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

2023.10.17

4840

11

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

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

2024.03.20

3766

12

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

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

2024.03.21

6679

8

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

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

2024.04.12

3115

5

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

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

2024.09.12

3664

6

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

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

2025.04.02

3563

9

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

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

2023.06.20

2353

6

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

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

2023.06.21

1439

5

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

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

2023.07.18

855

5

热门下载

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

精品课程

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

共1课时 | 191人学习