必须先确认系统为银河麒麟v10且架构匹配(x86_64或aarch64),再彻底卸载mariadb等冲突组件、安装对应架构依赖库,最后按架构选用官方二进制包部署并配置my.cnf与systemd服务。

如果您在麒麟OS上尝试部署MySQL数据库,但遇到依赖冲突、架构不匹配或服务无法启动等问题,则很可能是由于安装前未进行系统环境适配与组件清理。以下是针对麒麟OS(含V10 SP1/SP2/SP3及ARM/x86_64双架构)的MySQL数据库安装与基础环境配置操作步骤:
一、系统环境确认与预检查
该步骤用于验证操作系统版本、硬件架构及关键端口状态,避免因架构错配或端口占用导致后续安装失败。必须确保系统为银河麒麟V10系列且架构与MySQL安装包严格一致。
1、执行命令查看系统发行版信息:cat /etc/kylin-release
2、执行命令确认CPU架构:uname -m(输出必须为x86_64或aarch64)
3、检查3306端口是否被占用:ss -tulnp | grep :3306,若返回非空结果,需先终止对应进程
4、校验glibc版本是否满足要求:ldd --version(x86_64平台需≥glibc 2.17,ARM平台需≥glibc 2.28)
二、冲突组件彻底卸载
银河麒麟V10默认可能预装MariaDB或旧版MySQL相关包,其共享库、服务名及数据目录会与MySQL 8.0产生硬冲突,必须强制清除所有残留。
1、列出所有MariaDB和MySQL相关RPM包:rpm -qa | grep -E 'mariadb|mysql'
2、对每个查出的包执行强制卸载:rpm -e --nodeps (例如:rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64)
3、删除残留数据目录:rm -rf /var/lib/mysql /etc/my.cnf /usr/my.cnf
4、清空用户与组信息(如存在):userdel -r mysql && groupdel mysql
三、核心依赖库安装
MySQL 8.0运行依赖特定版本的底层库,缺失或版本过低将导致mysqld启动时直接报错“not found”或“symbol lookup error”。需按架构分别处理。
1、对于x86_64平台,执行以下命令安装全部必需依赖:yum install -y libaio-devel numactl-devel perl-Data-Dumper openssl-devel net-tools wget
2、对于ARM平台(aarch64),额外检查libtinfo兼容性:ldconfig -p | grep libtinfo;若仅显示libtinfo.so.6而无libtinfo.so.5,则创建符号链接:ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5
3、验证libaio版本是否达标:rpm -q libaio;若低于0.3.112,需手动升级至适配版本
四、MySQL二进制包部署(x86_64架构)
采用官方Linux-Generic二进制包可绕过RPM依赖解析问题,适用于所有麒麟V10 x86_64版本,是生产环境首选方式。
1、下载MySQL 8.0.36或更高LTS版本压缩包:wget https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz
2、解压并重命名为mysql:tar -xf mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz && mv mysql-8.0.36-linux-glibc2.28-x86_64 mysql
3、移动至标准路径:mv mysql /usr/local/
4、创建专用用户与权限隔离:groupadd mysql && useradd -r -g mysql -s /bin/false mysql
5、设置目录属主:chown -R mysql:mysql /usr/local/mysql && chmod -R 755 /usr/local/mysql
五、MySQL二进制包部署(ARM架构)
ARM平台必须使用专为aarch64构建的二进制包,否则将出现“Exec format error”。推荐优先选用华为云或阿里云镜像站提供的适配包,稳定性优于官网通用包。
1、从华为云镜像站下载ARM专用包:wget https://repo.huaweicloud.com/kunpeng/yum/el/7/aarch64/Packages/database/mysql-8.0.33-linux-glibc2.28-aarch64.tar.xz
2、解压并迁移:tar -xf mysql-8.0.33-linux-glibc2.28-aarch64.tar.xz && mv mysql-8.0.33-linux-glibc2.28-aarch64 /usr/local/mysql
3、初始化数据目录:/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
4、生成临时root密码后,立即记录输出行中A temporary password is generated for root@localhost: xxxxxx后的字符串
六、配置文件my.cnf初始化
标准配置文件决定MySQL服务监听地址、字符集、日志路径等核心行为,必须按麒麟OS安全规范设定权限与路径。
1、创建配置目录:mkdir -p /etc/mysql
2、创建并编辑配置文件:vim /etc/mysql/my.cnf
3、写入以下内容(注意:datadir与socket路径必须与实际部署路径完全一致):[mysqld]\nbasedir = /usr/local/mysql\ndatadir = /usr/local/mysql/data\nsocket = /usr/local/mysql/binlog/mysql.sock\npid-file = /usr/local/mysql/data/mysql.pid\nport = 3306\nbind-address = 0.0.0.0\ncharacter_set_server = utf8mb4\nlower_case_table_names = 1\nlog-error = /usr/local/mysql/data/mysql.err\nserver_id = 1\nsymbolic-links = 0\n[client]\nsocket = /usr/local/mysql/binlog/mysql.sock\nport = 3306
4、创建socket目录并授权:mkdir -p /usr/local/mysql/binlog && chown mysql:mysql /usr/local/mysql/binlog
七、服务注册与首次启动
通过systemd托管MySQL服务可实现开机自启与统一状态管理,配置单元文件是麒麟OS下标准运维实践。
1、创建systemd服务文件:vim /usr/lib/systemd/system/mysqld.service
2、填入以下内容:[Unit]\nDescription=MySQL Server\nDocumentation=man:mysqld(8)\nAfter=network.target\n[Service]\nType=forking\nUser=mysql\nGroup=mysql\nExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/data/mysql.pid\nRestart=on-failure\nRestartSec=10\n[Install]\nWantedBy=multi-user.target
3、重载systemd配置:systemctl daemon-reload
4、启动服务并设为开机自启:systemctl start mysqld && systemctl enable mysqld
5、验证服务状态:systemctl status mysqld,确认显示active (running)











