怎样在CentOS上从零安装数据库
导读:在 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 mysql,sudo 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.0 或 listen_addresses=‘*’)、云安全组/本机防火墙、以及数据库用户的主机限制(如 ‘root’@‘%’)。
- 安全加固要点:
- 使用 强密码策略,仅开放必要端口,限制可远程登录的账户与来源网段。
- 定期备份(如 mysqldump 或 pg_dump),并验证恢复流程。
- 生产环境建议启用 SSL/TLS 加密连接,按需配置审计与最小权限原则。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 怎样在CentOS上从零安装数据库
本文地址: https://pptw.com/jishu/785115.html
