温馨提示×

怎样在CentOS上安装数据库服务

小樊
36
2025-12-15 19:22:04
栏目: 智能运维

在CentOS上安装数据库服务的实用步骤

一、准备与通用操作

  • 以具有 sudo 权限的账号登录,先更新系统并安装常用工具:sudo yum update -y && sudo yum install -y wget
  • 数据库安装完成后,使用 systemd 管理服务:启动 sudo systemctl start <服务名>;设置开机自启 sudo systemctl enable <服务名>;查看状态 sudo systemctl status <服务名>
  • 建议同时放行防火墙端口(示例:MySQL 3306、PostgreSQL 5432):sudo firewall-cmd --permanent --add-port=3306/tcp 或 5432/tcp;sudo firewall-cmd --reload

二、安装 MySQL(官方 YUM 仓库)

  • 添加 MySQL 官方仓库(以 EL7 为例,其他版本将 el7 替换为对应版本号):sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
  • 安装服务器:sudo yum 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
  • 登录验证:mysql -u root -p

三、安装 PostgreSQL(PGDG 仓库)

  • 安装官方仓库(以 EL8 为例):sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
  • 安装服务器(以 13 为例):sudo yum install -y postgresql13-server
  • 初始化数据库:sudo postgresql-setup --initdb
  • 启动与自启:sudo systemctl start postgresql;sudo systemctl enable postgresql
  • 切换到 postgres 用户并登录:sudo -u postgres psql;在 psql 中可执行创建库与用户等 SQL

四、远程访问与基础安全配置

  • MySQL
    • 创建专用远程用户并授权(示例仅允许指定网段):CREATE USER ‘remote_user’@‘192.168.1.0/24’ IDENTIFIED BY ‘StrongPass!’; GRANT ALL PRIVILEGES ON . TO ‘remote_user’@‘192.168.1.0/24’; FLUSH PRIVILEGES;
    • 修改绑定地址并重启:编辑 /etc/my.cnf,设置 bind-address = 0.0.0.0;sudo systemctl restart mysqld
    • 防火墙放行 3306:sudo firewall-cmd --permanent --add-port=3306/tcp && sudo firewall-cmd --reload
  • PostgreSQL
    • 修改监听地址与认证:编辑 /var/lib/pgsql/data/postgresql.conf,设置 listen_addresses = ‘*’;编辑 /var/lib/pgsql/data/pg_hba.conf,按需添加 host all all 0.0.0.0/0 md5(生产环境建议限制网段并使用强口令)
    • 重启生效:sudo systemctl restart postgresql
  • 安全建议:避免使用 root 远程登录;仅开放必要 IP 与端口;为应用创建最小权限账号;定期备份

五、快速验证与常用维护命令

  • 验证安装
    • MySQL:mysql -u root -p -e “SHOW DATABASES;”
    • PostgreSQL:sudo -u postgres psql -c “\l”
  • 备份与恢复
    • MySQL:mysqldump -u root -p mydb > mydb.sql;mysql -u root -p mydb < mydb.sql
    • PostgreSQL:pg_dump -U postgres mydb > mydb.sql;psql -U postgres mydb < mydb.sql
  • 服务管理
    • 查看状态:sudo systemctl status mysqld 或 postgresql
    • 重启:sudo systemctl restart mysqld 或 postgresql

0