CentOS Stream 8 数据库管理实操指南
一 环境准备与通用安全
- 更新系统与基础工具:执行 sudo dnf update -y,并安装常用工具(如 vim、wget)。
- 安装常见依赖:MySQL 场景建议 dnf install -y libaio ncurses-compat-libs;MariaDB 通常随包提供依赖。
- 防火墙放行:数据库默认端口 3306(MySQL/MariaDB)/ 5432(PostgreSQL),按需放行,例如 firewall-cmd --add-port=3306/tcp --permanent && firewall-cmd --reload。
- 安全基线:保持系统与安全补丁更新,禁用不必要的服务,使用强密码并限制 root 远程登录。以上为后续安装与运维的通用前置步骤。
二 安装与初始化 MySQL 8.0
- 添加 MySQL 官方仓库并安装:
- 下载并安装仓库 RPM(示例为 8.0 系列),随后 sudo dnf install -y mysql-community-server。
- 启动与自启:
- sudo systemctl start mysqld && sudo systemctl enable mysqld。
- 获取临时 root 密码并安全初始化:
- 查看日志:sudo grep ‘temporary password’ /var/log/mysqld.log;
- 运行安全脚本:sudo mysql_secure_installation(设置 root 强密码、移除匿名用户、禁止远程 root 等)。
- 登录与基础配置:
- mysql -u root -p;创建业务库与用户并授权,例如:
- CREATE DATABASE appdb CHARACTER SET utf8mb4;
- CREATE USER appuser@‘%’ IDENTIFIED BY ‘StrongPass!’;
- GRANT ALL PRIVILEGES ON appdb.* TO appuser@‘%’;
- FLUSH PRIVILEGES;
- RPM 安装常见依赖与冲突处理:
- 如遇与系统自带 MariaDB 组件冲突,先移除相关包(如 mariadb-connector-c-config);
- 若缺少依赖,按提示安装(如 openssl-devel、libaio、ncurses-compat-libs)。
- 密码策略提示:若使用 MySQL 8 默认策略,设置复杂密码;如仅为测试可降低强度(如 set global validate_password.policy=LOW;)。
三 安装与初始化 PostgreSQL 14
- 安装官方仓库并禁用系统模块冲突:
- 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 mkdir -pv /data/pgsql/14/data && sudo chown postgres:postgres /data/pgsql/14/data;
- 修改服务文件 /usr/lib/systemd/system/postgresql-14.service 中的 Environment=PGDATA=/data/pgsql/14/data;
- 重载并初始化:sudo systemctl daemon-reload && sudo /usr/pgsql-14/bin/postgresql-14-setup initdb;
- 启动与自启:sudo systemctl enable --now postgresql-14。
- 基础对象与远程访问:
- 切换到 postgres 用户:su - postgres,进入 psql;
- 创建用户与库:
- CREATE USER pguser WITH ENCRYPTED PASSWORD ‘StrongPass!’;
- CREATE DATABASE pgdb OWNER pguser;
- 允许远程:编辑 /var/lib/pgsql/14/data/postgresql.conf 将 listen_addresses 改为 ‘*’;在 pg_hba.conf 增加规则(如 host all all 0.0.0.0/0 md5),重启服务生效。
四 备份恢复与日常运维
- 备份与恢复:
- MySQL:逻辑备份用 mysqldump -u root -p --databases appdb > appdb.sql,恢复用 mysql -u root -p < appdb.sql;
- PostgreSQL:逻辑备份用 pg_dump -U pguser -h 127.0.0.1 -d pgdb > pgdb.sql,恢复用 psql -U pguser -h 127.0.0.1 -d pgdb -f pgdb.sql。
- 服务与日志:
- 常用:sudo systemctl status|restart|reload mysqld/postgresql-14;
- 日志路径:/var/log/mysqld.log(MySQL),PostgreSQL 日志位于 PGDATA/log/ 或 systemd 日志(journalctl -u postgresql-14)。
- 监控建议:部署 Netdata 等实时监控,开启对 MySQL/MariaDB 或 PostgreSQL 的插件,观察连接、查询、缓存命中、复制延迟等关键指标。
五 版本选择与风险提示
- 版本与生命周期:有资料指出 CentOS Stream 8 已进入 EOL(停止维护) 阶段,生产环境建议优先考虑仍受支持的发行版(如 RHEL、AlmaLinux、Rocky Linux)或升级至 CentOS Stream 9/10,以获得安全更新与兼容性保障。
- 在继续使用 CentOS Stream 8 的场景下,务必加强补丁、最小化暴露面、严格访问控制与定期离线备份,以降低安全风险。