首页主机资讯怎样在CentOS上从零安装数据库

怎样在CentOS上从零安装数据库

时间2026-01-19 02:45:03发布访客分类主机资讯浏览1335
导读:在 CentOS 上从零安装数据库的实用指南 一、准备与环境检查 以具有 sudo 权限的用户登录,先更新系统并安装常用工具: 更新软件包:sudo yum update -y 安装工具:sudo yum install -y wget...

在 CentOS 上从零安装数据库的实用指南

一、准备与环境检查

  • 以具有 sudo 权限的用户登录,先更新系统并安装常用工具:
    • 更新软件包:sudo yum update -y
    • 安装工具:sudo yum install -y wget vim
  • 规划目录与用户(以 MySQL 为例,PostgreSQL 见后文差异):
    • 创建系统用户与数据目录:sudo useradd -r -g mysql mysqlsudo mkdir -p /usr/local/mysql /data/mysql
    • 授权目录:sudo chown -R mysql:mysql /usr/local/mysql /data/mysql
  • 防火墙放行数据库端口(示例为 3306):
    • firewalld:sudo firewall-cmd --add-port=3306/tcp --permanent & & sudo firewall-cmd --reload
    • 如仍使用 iptables:sudo iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
  • SELinux(如启用)可按需临时放宽或按策略配置,生产环境不建议直接关闭。

二、安装 MySQL(推荐官方 YUM 仓库,适用于 CentOS 7/8)

  • 导入 MySQL 官方仓库(示例为 EL7;EL8 将链接中的 el7 替换为 el8):
    • wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
    • sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
  • 安装服务器:sudo yum install -y mysql-community-server
  • 启动与自启:
    • sudo systemctl start mysqld
    • sudo systemctl enable mysqld
  • 获取临时密码并安全初始化:
    • 临时密码:sudo grep ‘temporary password’ /var/log/mysqld.log
    • 安全配置向导:sudo mysql_secure_installation(设置 root 强密码、移除匿名用户、禁止 root 远程、删除测试库等)
  • 登录验证:mysql -u root -p,执行 SHOW DATABASES; 确认安装成功。

三、离线安装 MySQL(无公网环境)

  • 准备安装介质(在一台可联网机器下载后拷入离线机):
    • 依赖:libaio(如 libaio-0.3.109-13.el7.x86_64.rpm
    • MySQL 二进制包(示例:mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
  • 离线机操作:
    • 安装依赖:sudo rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm
    • 解压与目录准备:
      • tar -zxvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
      • sudo mv mysql-5.7.36-linux-glibc2.12-x86_64 /usr/local/mysql
      • sudo mkdir -p /usr/local/mysql/data & & sudo chown -R mysql:mysql /usr/local/mysql
    • 创建配置文件 /etc/my.cnf(示例关键项):
      • [mysqld] 段:port=3306、user=mysql、basedir=/usr/local/mysql、datadir=/usr/local/mysql/data、socket=/usr/local/mysql/data/mysql.sock、log-error=/var/log/mysqld.log、pid-file=/var/run/mysqld/mysqld.pid、bind-address=0.0.0.0、character_set_server=utf8
      • [client] 段:socket=/usr/local/mysql/data/mysql.sock、default-character-set=utf8
    • 初始化数据库:
      • sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
      • 临时密码:sudo grep ‘temporary password’ /var/log/mysqld.log
    • 启动与便捷管理:
      • 启动:sudo /usr/local/mysql/support-files/mysql.server start
      • 可选:建立软链以便使用 systemctl 管理(示例:sudo ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    • 登录并修改密码:mysql -u root -p,执行 ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘YourStrongP@ssw0rd’;
    • 开放远程(按需):在 mysql 库执行
      • CREATE USER ‘root’@‘%’ IDENTIFIED BY ‘YourStrongP@ssw0rd’;
      • GRANT ALL PRIVILEGES ON . TO ‘root’@‘%’ WITH GRANT OPTION;
      • FLUSH PRIVILEGES;
    • 防火墙放行 3306 端口后测试远程连接。

四、安装 PostgreSQL(官方仓库,适用于 CentOS 7/8)

  • 安装官方仓库(示例为 EL7;EL8 将链接中的 EL-7 替换为 EL-8):
    • sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
  • 为避免与系统自带旧包冲突,在 /etc/yum.repos.d/CentOS-Base.repo[base][updates] 段添加:exclude=postgresql*
  • 安装服务器(示例安装 PostgreSQL 11;如需 13,将 11 替换为 13):
    • sudo yum install -y postgresql11-server
  • 初始化数据库集群:sudo /usr/pgsql-11/bin/postgresql-11-setup initdb
  • 启动与自启:
    • sudo systemctl start postgresql-11
    • sudo systemctl enable postgresql-11
  • 设置 postgres 用户密码并测试:
    • sudo -u postgres psql
    • 在 psql 中:ALTER USER postgres WITH PASSWORD ‘YourStrongP@ssw0rd’; \q
  • 允许远程连接(按需):
    • 编辑 /var/lib/pgsql/11/data/pg_hba.conf,添加:host all all 0.0.0.0/0 md5
    • 编辑 /var/lib/pgsql/11/data/postgresql.conf,设置:listen_addresses = ‘*’
    • 重启:sudo systemctl restart postgresql-11
    • 防火墙放行 5432 端口后测试远程连接。

五、常见问题与加固建议

  • 忘记或丢失 root 密码(MySQL):
    • 编辑 /etc/my.cnf,在 [mysqld] 段临时加入:skip-grant-tables
    • 重启:sudo systemctl restart mysqld
    • 登录并重置:mysql -u root,执行 ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘NewStrongP@ssw0rd’;
    • 移除 skip-grant-tables 并再次重启。
  • 远程连不通:
    • 核对服务监听地址(如 bind-address=0.0.0.0listen_addresses=‘*’)、云安全组/本机防火墙、以及数据库用户的主机限制(如 ‘root’@‘%’)。
  • 安全加固要点:
    • 使用 强密码策略,仅开放必要端口,限制可远程登录的账户与来源网段。
    • 定期备份(如 mysqldumppg_dump),并验证恢复流程。
    • 生产环境建议启用 SSL/TLS 加密连接,按需配置审计与最小权限原则。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 怎样在CentOS上从零安装数据库
本文地址: https://pptw.com/jishu/785115.html
CentOS从零开始设置防火墙的技巧 CentOS从零搭建Web服务器步骤解析

游客 回复需填写必要信息