1. 准备工作
确保你以 root
用户身份登录系统,并且服务器已连接到互联网,因为后续需要从网络下载安装包。
2. 添加 PostgreSQL Yum 源
PostgreSQL 官方提供了专门的 Yum 源仓库,方便用户安装特定版本的 PostgreSQL。执行以下命令添加 Yum 源:
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
这个命令会下载并安装 PostgreSQL 的 Yum 源仓库配置文件,让系统可以从官方源获取 PostgreSQL 相关软件包。
3. 安装 PostgreSQL 14
使用 yum
命令安装 PostgreSQL 14 的服务器和客户端:
yum install -y postgresql14-server postgresql14
postgresql14-server
是 PostgreSQL 14 的服务器组件,postgresql14
是客户端组件,它们配合使用才能完整地操作数据库。
如果遇到下图报错
当出现Loading mirror speeds from cached hostfile
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - “Could not resolve host: mirrorlist.centos.org; 未知的错误”
你就需要更改镜像下载地址了,推荐使用阿里云镜像,:
首先备份
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
其次直接编辑 vi /etc/yum.repos.d/CentOS-Base.repo
把之前的代码去掉换下边的就行
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
4. 初始化数据库
安装完成后,需要对数据库进行初始化操作,以创建初始的数据库集群:
/usr/pgsql-14/bin/postgresql-14-setup initdb
此命令会创建数据库所需的目录结构、系统表和配置文件等。
5. 启动并设置开机自启
使用 systemctl
命令启动 PostgreSQL 14 服务,并设置为开机自启:
systemctl start postgresql-14
systemctl enable postgresql-14
start
命令用于立即启动服务,enable
命令会将服务添加到系统的开机启动项中,确保服务器重启后 PostgreSQL 服务能自动启动。
6. 配置 PostgreSQL
修改监听地址
如果你希望允许远程主机连接到 PostgreSQL 数据库,需要修改 postgresql.conf
文件。使用文本编辑器(如 vi
)打开该文件:
vi /var/lib/pgsql/14/data/postgresql.conf
找到 listen_addresses
参数,将其修改为:
listen_addresses = '*'
*
表示允许所有 IP 地址的主机连接到数据库。修改完成后保存并退出文件。
配置客户端认证
编辑 pg_hba.conf
文件来配置客户端认证规则,使用以下命令打开该文件:
vi /var/lib/pgsql/14/data/pg_hba.conf
在文件末尾添加以下内容,允许所有 IP 地址的主机以密码认证方式连接:
host all all 0.0.0.0/0 md5
md5
表示使用 MD5 加密的密码认证方式。保存并退出文件。
重新加载配置
修改配置文件后,需要重新加载配置使修改生效:
systemctl reload postgresql-14
- 重启服务:如果重新加载不起作用,可以尝试重启服务:
systemctl restart postgresql-14
7. 创建数据库用户和数据库
切换到 postgres
用户,该用户是 PostgreSQL 安装时自动创建的超级用户:
su - postgres
使用 psql
命令进入 PostgreSQL 的交互式终端:
psql
在 psql
终端中,创建新的数据库用户和数据库。例如,创建一个名为 newuser
的用户,并设置密码为 password
,再创建一个名为 newdb
的数据库:
CREATE USER newuser WITH PASSWORD 'password';
CREATE DATABASE newdb OWNER newuser;
授予用户相应的权限:
GRANT ALL PRIVILEGES ON DATABASE newdb TO newuser;
完成操作后,输入 \q
退出 psql
终端,再输入 exit
退出 postgres
用户。
8. 测试连接
使用新创建的用户连接到新数据库,验证安装和配置是否成功:
psql -U newuser -d newdb
如果能够成功连接,说明 PostgreSQL 14 已在 CentOS 7 上安装并配置完成。
通过以上步骤,你就可以在 CentOS 7 系统上顺利安装和配置 PostgreSQL 14 数据库。