CentOS 7 已停止维护,系统自带 MariaDB 5.5 版本过旧,安装 MariaDB 10.5 需先卸载冲突的 mariadb-libs 库并配置官方 Yum 源。操作风险在于卸载系统库可能影响 postfix 等依赖包,生产环境必须先备份数据。
先说结论:CentOS 7 环境下可以通过官方 Yum 源安装 MariaDB 10.5,但必须处理系统自带库的依赖冲突。
- 适合:CentOS 7 系统需要更高数据库版本且无法升级操作系统的场景
- 先看:卸载 mariadb-libs 前确认 postfix 等服务的依赖关系
- 验收:安装完成后验证服务状态及数据目录权限
命令速用版
# 1. 备份数据
mysqldump -u root -p `--all-databases` > backup.sql
# 2. 卸载系统自带库(注意依赖风险)
yum remove mariadb-libs `--nodeps`
# 3. 配置 MariaDB 10.5 Yum 源
cat > /etc/yum.repos.d/MariaDB.repo <<EOF
[mariadb]
name = MariaDB
baseurl = https://yum.mariadb.org/10.5/centos7-amd64/
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
# 4. 安装服务端与客户端
yum install MariaDB-server MariaDB-client
# 5. 启动服务
systemctl start mariadb
systemctl enable mariadb为什么会这样
CentOS 7 默认仓库仅包含 MariaDB 5.5,该版本已停止功能更新且存在安全漏洞。MariaDB 10.5 属于 LTS 长期支持版本,但官方 RPM 包与系统自带的 mariadb-libs 存在文件冲突。直接安装会报错依赖冲突,必须先移除系统库才能继续。
分步处理
第一步:数据备份
执行全量备份防止升级失败导致数据丢失。确认备份文件生成且大小正常。mysqldump -u root -p `--all-databases` > /root/backup_$(date +%F).sql
第二步:处理依赖冲突
系统自带的 mariadb-libs 被 postfix 依赖,强制卸载可能导致邮件服务异常。若服务器不使用邮件功能,可添加 `--nodeps` 参数忽略依赖检查。rpm -qa | grep mariadb
yum remove mariadb-libs `--nodeps`
第三步:配置仓库
创建.repo 文件指向 MariaDB 官方 10.5 版本仓库。CentOS 7 架构通常为 amd64,需确保 baseurl 地址匹配。vi /etc/yum.repos.d/MariaDB.repo
第四步:安装与初始化
安装完成后运行安全脚本,设置 root 密码并移除匿名账户。yum install MariaDB-server MariaDB-client
mysql_secure_installation
怎么验证是否生效
通过客户端命令查看版本号,确认显示 10.5 字样。检查 systemd 服务状态是否为 active (running)。mysql `--version`
systemctl status mariadb
登录数据库执行 SQL 查询版本信息,确认服务端内核版本匹配。mysql -u root -p -e "SELECT VERSION();"
常见坑
1. postfix 服务启动失败
卸载 mariadb-libs 后 postfix 可能无法启动。若不需要邮件服务可忽略,若需要则需重新编译或寻找兼容库。
2. 数据目录权限错误
全新安装后 /var/lib/mysql 权限可能不属于 mysql 用户。启动失败时检查日志。chown -R mysql:mysql /var/lib/mysql
3. 防火墙拦截
默认端口 3306 可能被 firewalld 拦截。外部连接需放行端口。firewall-cmd `--zone`=public `--add-port`=3306/tcp `--permanent`
常见问题
升级过程会丢失原有数据吗?
覆盖安装通常保留 /var/lib/mysql 数据,但跨大版本升级存在兼容风险,必须提前备份。
CentOS 7 停止维护影响 MariaDB 使用吗?
不影响。MariaDB 官方仓库独立于 CentOS 仓库,只要网络能访问 yum.mariadb.org 即可正常安装更新。
可以直接 yum update 升级吗?
不可以。系统默认源没有 10.5 版本,必须配置 MariaDB 官方源并手动指定版本安装。
参考来源
- MariaDB Knowledge Base: MariaDB 10.5 Release Notes
- CentOS Wiki: CentOS 7 End of Life
- MariaDB Downloads: Yum Repository Configuration