1.更换本地mariadb源
vi /etc/yum.repos.d/MariaDB.repo
将以下内容粘贴进去,:wq!保存
[mariadb]
name = MariaDB
baseurl = https://mirrors.aliyun.com/mariadb/yum/11.4/centos7-amd64/
gpgkey = https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
enabled = 1
2.清除缓存,安装mariadb
# 清理缓存
sudo yum clean all
# 重新生成缓存
yum makecache
3.安装 EPEL 扩展源(解决 pv 包缺失问题)
CentOS 7 已经在 2024 年 6 月 30 日正式停止维护(EOL)。受此影响,阿里云镜像站(mirrors.aliyun.com)近期对目录结构进行了大调整,原先的 epel-release-latest-7.noarch.rpm 直接下载链接已经被移除或归档,导致 YUM 无法直接打开该链接。
通过 手动用 vi 创建阿里云 EPEL 源配置文件 的方式来直接绕过它
sudo vi /etc/yum.repos.d/epel.repo
将以下内容粘贴至上方vi中并保存退出
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=https://mirrors.aliyun.com/epel/7/$basearch
failovermethod=priority
enabled=1
gpgcheck=0
4.清理并强制重构 YUM 缓存
# 清理所有缓存和旧的事务锁
sudo yum clean all
# 重新生成高速缓存
sudo yum makecache
5.安装 pv 依赖与 MariaDB
sudo yum install -y pv MariaDB-server MariaDB-client
6.启动 MariaDB 服务
# 启动服务
sudo systemctl start mariadb
# 检查服务状态
sudo systemctl status mariadb
+处理问题:启动服务报错

CentOS 7 的内核版本过旧(通常是 3.10),或者是在较旧的虚拟化环境(如老版本的 OpenVZ、Docker 容器或未开启对应支持的虚拟机)中,其 systemd 无法正确解析或支持新版 MariaDB 配置文件里定义的某些特权(AmbientCapabilities/CapabilityBoundingSet),从而导致进程在创建初期就直接被内核拦截崩溃。
解决方案:使用 vi 修改 systemd 配置,编辑 MariaDB 的服务文件,注释掉引起兼容性问题的 AmbientCapabilities 选项。
sudo systemctl edit mariadb.service
写入兼容性配置
原理解释: 这里的赋值留空,代表在 systemd 中清除并禁用该服务对内核 Capabilities 的特殊要求,让它退回到传统的 root 权限模式启动,从而兼容 CentOS 7 的旧内核。
[Service]
AmbientCapabilities=
CapabilityBoundingSet=
7.1刷新配置并重新启动
修改了 systemd 的配置文件后,必须刷新守护进程,然后再次尝试启动
# 重新加载 systemd 配置
sudo systemctl daemon-reload
# 再次启动 MariaDB
sudo systemctl start mariadb
7.2再次检查服务状态
现在再次查看状态,应该就能看到久违的绿色 active (running) 了
sudo systemctl status mariadb

8.安全初始化配置
为了数据库的安全,建议运行 MariaDB 自带的安全初始化脚本。这会引导你设置 root 密码、移除匿名用户、禁止 root 远程登录等:
sudo mariadb-secure-installation
配置过程中的常见提示:
- Enter current password for root (enter for none): 直接按 回车(因为初始没有密码)。
- Switch to unix_socket authentication [Y/n]: 输入 n。
- Set root password? [Y/n]: 输入 y,然后输入你想设置的 数据库 root 密码(输入时屏幕不会显示,输完直接回车即可)。
- Remove anonymous users? [Y/n]: 输入 y(移除匿名用户)。
- Disallow root login remotely? [Y/n]: 根据需求选择(如果需要远程连接输入 n,为了安全推荐输入 y)。
- Remove test database and access to it? [Y/n]: 输入 y(删除测试数据库)。
- Reload privilege tables now? [Y/n]: 输入 y(刷新权限表)。
9.将MariaDB服务设为开机自启
# 设置开机自启
sudo systemctl enable mariadb
附:常用命令
#登录数据库
mariadb -u root -p
#查看服务状态
sudo systemctl status mariadb
#重启数据库(未来修改了配置文件后使用)
sudo systemctl restart mariadb
#停止数据库
sudo systemctl stop mariadb