加油
努力

CentOS 7.1 64位环境下配置数据库服务器的步骤是什么?

在 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 内核/库,存在风险)

  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
  2. 安装依赖并安装:

    sudo yum install -y libaio numactl-libs
    sudo rpm -ivh mysql-community-*.rpm
  3. 启动并初始化:

    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/9AlmaLinux 8/9(CentOS 精确替代,长期支持)
  • ✅ 或容器化部署(Docker + 官方 MySQL 8.0+ 镜像,隔离旧系统风险)

如需我提供 Rocky Linux 9 上部署 MySQL 8.0 的详细步骤自动化 Ansible 脚本,欢迎随时提出 👍

是否需要我为你生成一个 mysql-deploy.sh 一键脚本(含错误检查与日志)?

云服务器