银河麒麟V10上部署MySQL 8,说难不难,说简单也真容易踩坑。我最早一次是在一台x86架构的Kylin V10服务器上装的,本来以为跟CentOS一样,几条yum命令就完事,结果源里压根没有官方MySQL包,能搜到的mysql-server还是MariaDB换皮,白折腾了一个下午。后来换了官方二进制包,才把整个流程跑通。这篇文章就把我当时从选型到初始化、再到配置远程访问的完整过程写出来,能帮你省掉不少试错时间。
这次分享适合谁看?两类人:一类是刚接手国产化服务器,要在内网环境部署数据库的运维和开发;另一类是已经有Linux基础,但第一次在麒麟系统上装MySQL 8,想避开依赖坑的朋友。无论你是x86还是ARM架构的机器,下面的思路都通用,差异点我会单独标出来。
1. 安装方案选型:为什么我建议用官方二进制包而不是yum
很多人一上来就在麒麟V10上执行yum install mysql-server,然后发现装完的是MariaDB,或者干脆提示没有可用软件包。这个问题的根源不在操作,而在源的差异。
1.1 先搞清楚你的麒麟是x86还是ARM
银河麒麟V10有x86_64版本,也有基于飞腾、鲲鹏、龙芯等国产CPU的ARM或MIPS版本。不同架构对应的MySQL包完全不同,装错了连启动都起不来。判断方法很简单:
bash复制uname -m
输出x86_64就按x86流程走,输出aarch64就一定要下载ARM64版本的安装包。我见过有人说“我下载了tar包怎么装都报Exec format error”,一查就是ARM机器下了x86包,这种低级错误很浪费生命。
1.2 四种安装方式对比与最终选型
在麒麟V10上安装MySQL 8通常有四条路,我把各自的适用场景列出来:
| 安装方式 | 优点 | 缺点 | 适合场景 |
|---|---|---|---|
| yum/dnf安装 | 命令简单,自动处理依赖 | 麒麟源里通常没有MySQL官方包,容易装成MariaDB | 网络环境下可先试一下 |
| RPM包安装 | 便于rpm管理、卸载 | 依赖关系复杂,可能和系统libaio、openssl版本冲突 | 对RPM依赖非常熟悉的用户 |
| 官方Generic二进制包 | 解压即用,路径可控,依赖少 | 需要手动写service文件 | 我最推荐的方式 |
| 源码编译 | 可深度定制 | 编译时间长,依赖工具链复杂 | 有特殊编译参数需求时 |
我当时最终选了官方Generic二进制包。原因有三个:第一,麒麟V10是RHEL系衍生系统,和官方glibc 2.12/2.17的兼容性包能对上;第二,二进制包对yum源没有依赖,内网环境也能装;第三,安装目录完全自己控制,方便后续多实例部署和数据目录迁移。如果你需要在生产环境快速复制到多台机器,解压一份包分发过去就能跑,效率比RPM那套高太多。
1.3 一个容易被忽略的glibc兼容性问题
MySQL官方下载页会把二进制包按glibc版本分好,常见的有glibc2.12和glibc2.17两种。麒麟V10服务器版的glibc版本通常比较高,向下兼容低版本包。稳妥起见,装之前先看一眼系统glibc版本:
bash复制ldd --version
只要你的系统版本高于MySQL包要求的版本,基本上就没问题。我用的包是mysql-8.0.36-linux-glibc2.12-x86_64.tar.xz,在Kylin V10 SP1上运行得很稳。ARM机器则选linux-glibc2.17-aarch64对应版本。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 上手前要做的系统检查与目录规划
安装MySQL最怕的不是下载慢,而是安装到一半才发现系统里有残留数据库组件,或者目录规划不合理导致后面扩容困难。所以动手前先把环境摸清。
2.1 卸载残留数据库组件
麒麟V10有时候会预装MariaDB或者兼容层组件。不卸载直接装MySQL,端口会被占,或者mysql命令指向另一个客户端,排查起来头大。
检查命令:
bash复制rpm -qa | grep -i -E "mysql|mariadb"
如果发现有mariadb-server之类的包,直接卸载:
bash复制yum remove -y mariadb-server mariadb
卸载后顺手清理掉历史数据目录,避免旧数据影响新实例启动。这个步骤不要跳过,我曾在测试机上因为残留的/var/lib/mysql存在,导致初始化阶段系统直接报目录非空错误。
2.2 关闭SELinux与防火墙
麒麟V10默认可能开启SELinux和firewalld,不处理的话,MySQL服务能启动,但远程连接时可能被防火墙挡掉,或者SELinux拦截了mysqld对数据
