温馨提示×

centos stream8如何安装数据库软件

小樊
42
2025-12-17 12:06:00
栏目: 智能运维

在 CentOS Stream 8 上安装数据库软件

一、准备与通用步骤

  • 更新系统并安装常用工具:sudo dnf update -y && sudo dnf install -y wget vim
  • 建议为数据库创建专用系统用户(以 mysql 为例):sudo useradd -r -s /sbin/nologin -m -d /var/lib/mysql mysql
  • 规划数据与日志目录并授权:sudo mkdir -p /data/mysql /var/log/mysql && sudo chown -R mysql:mysql /data/mysql /var/log/mysql
  • 防火墙放行数据库端口(示例:MySQL 3306、PostgreSQL 5432):sudo firewall-cmd --permanent --add-port=3306/tcp && sudo firewall-cmd --permanent --add-port=5432/tcp && sudo firewall-cmd --reload
  • SELinux 如开启,按需设置(示例:允许 mysqld 网络访问)或使用 sudo setenforce 0 临时宽松用于排障(生产环境不建议长期关闭)

二、安装 MySQL 8.0(YUM 官方仓库,推荐)

  • 添加 MySQL YUM 仓库(EL8):sudo dnf install -y https://repo.mysql.com/mysql80-community-release-el8-5.noarch.rpm
  • 禁用系统自带的 MySQL 模块以避免冲突:sudo dnf module disable -y mysql
  • 安装服务器与客户端:sudo dnf install -y mysql-community-server mysql-community-client
  • 启动与开机自启:sudo systemctl enable --now mysqld
  • 获取初始 root 密码:grep ‘temporary password’ /var/log/mysqld.log
  • 安全初始化(设置 root 密码、移除匿名用户、禁止远程 root 等):sudo mysql_secure_installation
  • 登录验证:mysql -u root -p
  • 常见问题处理:
    • 若出现“All matches were filtered out by modular filtering”,说明模块未禁用,执行:sudo dnf module disable -y mysql 再安装
    • 若遇到仓库元数据或签名问题,可临时使用:sudo dnf install -y mysql-community-server --nogpgcheck(仅用于排障,生产请修复 GPG 与仓库)

三、安装 MariaDB(替代方案)

  • 安装 MariaDB 服务器与客户端:sudo dnf install -y mariadb-server mariadb
  • 启动与开机自启:sudo systemctl enable --now mariadb
  • 安全初始化:sudo mysql_secure_installation
  • 登录验证:mysql -u root -p
  • 说明:MariaDB 与 MySQL 命令与协议高度兼容,适合希望保持与 MySQL 5.7/8.0 生态接近的场景

四、安装 PostgreSQL 14(官方仓库)

  • 安装 PostgreSQL 官方仓库并禁用内置模块:sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm && sudo dnf -qy module disable postgresql
  • 安装服务器包:sudo dnf install -y postgresql14-server
  • 初始化数据库并启用开机启动:sudo /usr/pgsql-14/bin/postgresql-14-setup initdb && sudo systemctl enable --now postgresql-14
  • 切换到 postgres 用户并设置密码:sudo -u postgres psql -c “ALTER USER postgres WITH PASSWORD ‘YourStrongP@ssw0rd’;”
  • 远程访问(按需开启):
    • 编辑 /var/lib/pgsql/14/data/postgresql.conf:listen_addresses=‘*’
    • 编辑 /var/lib/pgsql/14/data/pg_hba.conf:在末尾添加 host all all 0.0.0.0/0 md5
    • 重启生效:sudo systemctl restart postgresql-14
  • 防火墙放行:sudo firewall-cmd --permanent --add-port=5432/tcp && sudo firewall-cmd --reload

五、其他安装方式与后续建议

  • RPM 离线安装 MySQL 8.0(适用于无外网环境)
    • 从 MySQL 官网下载对应版本的 RPM Bundle(如:mysql-8.0.31-1.el8.x86_64.rpm-bundle.tar),上传至服务器
    • 解压:tar xf mysql-8.0.31-1.el8.x86_64.rpm-bundle.tar
    • 按依赖顺序安装(示例):sudo dnf install -y mysql-community-common-.rpm mysql-community-libs-.rpm mysql-community-client-plugins-.rpm mysql-community-client-.rpm mysql-community-icu-data-files-.rpm mysql-community-server-.rpm
    • 若遇到冲突(如 mariadb-connector-c-config 被取代),先卸载冲突包:sudo dnf remove -y mariadb-connector-c-config
    • 启动与开机自启:sudo systemctl enable --now mysqld
    • 获取初始密码:grep ‘temporary password’ /var/log/mysqld.log
  • 安全与运维要点
    • 为数据库服务使用最小权限的系统账户,目录与文件权限最小化
    • 仅开放必要端口,强制使用强密码策略与 TLS 连接(如启用 SSL/TLS)
    • 定期备份(如 mysqldump、pg_dump),并验证可恢复性
    • 生产环境建议开启审计日志与慢查询日志,按需进行性能调优(缓冲池、连接数、I/O 调度等)

0