在 CentOS 7.1(64位)环境下配置数据库服务器,通常指安装和配置主流开源数据库(如 MySQL 或 PostgreSQL)。由于 CentOS 7.1 已于 2015 年发布(内核 3.10.0-229.el7),官方支持早已终止(EOL),且其默认仓库中提供的数据库版本较旧(如 MySQL 5.5 / MariaDB 5.5),存在安全与兼容性风险。因此,以下说明将兼顾历史兼容性与生产建议,以 MariaDB(MySQL 兼容的推荐替代) 为主(因其是 CentOS 7 的默认数据库),同时提供 MySQL 官方版选项。
⚠️ 重要前提提醒:
- ✅ CentOS 7.1 属于非常老旧的系统(2015年发布,2017年即被 7.2 取代),不建议用于生产环境。请尽快升级至 CentOS 7.9(最后维护版)或迁移至 Rocky Linux/AlmaLinux 8/9。
- 🔒 系统需已更新基础安全补丁:
sudo yum update -y(尽管 7.1 仓库可能已不可用,需先配置可用源或使用 vault.centos.org)。
✅ 推荐方案:安装并配置 MariaDB(CentOS 7 默认、稳定、兼容 MySQL)
步骤 1:配置 YUM 源(适配 CentOS 7.1)
由于 7.1 官方源已下线,需使用 CentOS Vault 镜像:
# 备份原 repo
sudo mkdir -p /etc/yum.repos.d/backup
sudo mv /etc/yum.repos.d/CentOS-*.repo /etc/yum.repos.d/backup/
# 创建 CentOS-Base.repo(指向 vault)
sudo tee /etc/yum.repos.d/CentOS-Base.repo << 'EOF'
[base]
name=CentOS-7.1 - Base
baseurl=http://vault.centos.org/7.1.1503/os/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[updates]
name=CentOS-7.1 - Updates
baseurl=http://vault.centos.org/7.1.1503/updates/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
EOF
💡 提示:
7.1.1503是 CentOS 7.1 的确切版本号(2015年3月发布)。确认路径有效可访问:https://vault.centos.org/7.1.1503/
步骤 2:安装 MariaDB
sudo yum clean all
sudo yum makecache
sudo yum install -y mariadb-server mariadb
✅ 默认安装版本:mariadb-5.5.41-2.el7_1(符合 7.1 兼容性)
步骤 3:启动并启用服务
sudo systemctl start mariadb
sudo systemctl enable mariadb
# 验证状态
sudo systemctl status mariadb
步骤 4:运行安全初始化脚本(关键!)
sudo mysql_secure_installation
按提示操作:
- Enter current password for root (enter for none):
直接回车(首次为空) - Set root password? →
Y,输入强密码(如MyPass@2024!) - Remove anonymous users? →
Y - Disallow root login remotely? →
Y(生产环境建议;如需远程,稍后授权) - Remove test database? →
Y - Reload privilege tables? →
Y
步骤 5:配置防火墙(如启用 firewalld)
sudo firewall-cmd --permanent --add-service=mysql
sudo firewall-cmd --reload
# 或开放 3306 端口:
# sudo firewall-cmd --permanent --add-port=3306/tcp
步骤 6:配置远程访问(可选,谨慎操作)
编辑 /etc/my.cnf(或 /etc/my.cnf.d/server.cnf):
[mysqld]
bind-address = 0.0.0.0 # 允许所有IP(生产建议改为具体内网IP)
# 或更安全:bind-address = 192.168.1.100
重启服务:
sudo systemctl restart mariadb
创建远程用户(登录 MySQL 后执行):
CREATE USER 'dbuser'@'192.168.1.%' IDENTIFIED BY 'StrongPass!2024';
GRANT ALL PRIVILEGES ON myapp.* TO 'dbuser'@'192.168.1.%';
FLUSH PRIVILEGES;
步骤 7:验证连接
- 本地测试:
mysql -u root -p SHOW DATABASES; - 远程测试(从另一台机器):
mysql -h <server_ip> -u dbuser -p
⚠️ 替代方案:安装 MySQL 官方社区版(需手动下载 RPM)
仅适用于需要 MySQL 5.7+ 的场景(但注意:MySQL 5.7 不完全兼容 CentOS 7.1 内核/库,存在风险)
-
下载对应 RPM(例如 MySQL 5.7.31,最后支持 EL7 的旧版):
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-server-5.7.31-1.el7.x86_64.rpm wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-client-5.7.31-1.el7.x86_64.rpm wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-common-5.7.31-1.el7.x86_64.rpm wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-libs-5.7.31-1.el7.x86_64.rpm -
安装依赖并安装:
sudo yum install -y libaio numactl-libs sudo rpm -ivh mysql-community-*.rpm -
启动并初始化:
sudo systemctl start mysqld sudo grep 'temporary password' /var/log/mysqld.log # 获取临时密码 mysql_secure_installation # 使用临时密码登录设置新密码
❗ 注意:MySQL 5.7+ 在 CentOS 7.1 上可能因 glibc 版本过低报错,建议优先使用 MariaDB。
🛡️ 生产环境加固建议(必做)
- 修改默认端口(非必需,但可降低扫描风险):
# /etc/my.cnf [mysqld] port = 3307 - 启用日志审计(如
general_log=OFF,slow_query_log=ON) - 定期备份(使用
mysqldump+ cron):0 2 * * * /usr/bin/mysqldump -u root -p'YourPass' --all-databases | gzip > /backup/mysql-$(date +%F).sql.gz - 使用 SELinux 策略(默认 enforcing,确保
sestatus为 enabled)
🚫 不推荐的操作
- ❌ 直接编译安装新版数据库(如 MySQL 8.0+)——严重依赖新 glibc/openssl,CentOS 7.1 无法满足;
- ❌ 使用 EPEL 7 源安装高版本(EPEL 7 对应 CentOS 7.x 通用,但 7.1 太老,部分包缺失);
- ❌ 忽略
mysql_secure_installation—— 默认 root 无密码且允许远程空密码登录,极度危险!
✅ 总结:推荐完整命令流(一键快速部署 MariaDB)
# 1. 配置 vault 源(如未配置)
sudo tee /etc/yum.repos.d/CentOS-Base.repo <<'EOF'
[base]
baseurl=http://vault.centos.org/7.1.1503/os/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
EOF
# 2. 安装 & 启动
sudo yum clean all && sudo yum makecache
sudo yum install -y mariadb-server mariadb
sudo systemctl start mariadb && sudo systemctl enable mariadb
# 3. 安全初始化(交互式,需人工输入密码等)
sudo mysql_secure_installation
# 4. 开放防火墙
sudo firewall-cmd --permanent --add-service=mysql && sudo firewall-cmd --reload
📌 最后强烈建议:
CentOS 7.1 已超期近10年,存在大量未修复 CVE(如 CVE-2016-0728, CVE-2017-1000364 等内核级漏洞)。请立即规划迁移至:
- ✅ Rocky Linux 8/9 或 AlmaLinux 8/9(CentOS 精确替代,长期支持)
- ✅ 或容器化部署(Docker + 官方 MySQL 8.0+ 镜像,隔离旧系统风险)
如需我提供 Rocky Linux 9 上部署 MySQL 8.0 的详细步骤 或 自动化 Ansible 脚本,欢迎随时提出 👍
是否需要我为你生成一个 mysql-deploy.sh 一键脚本(含错误检查与日志)?
云小栈