此次安装采用的是yum源,下载rpm包方式进行安装
下载rpm包 并安装
postgres数据库官网提供了rpm包的下载地址,并且提供了根据不同操作系统,生成不同安装指令的界面。 postgres数据库rpm安装包下载地址。如下图所示
#下载和安装数据库
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql14-server
#初始化数据集,注意,如果想改变数据存放目录的话,需要先修改配置,然后再进行这一步
#修改数据存放目录,看最后一个标题
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
#设置开机自启动
sudo systemctl enable postgresql-14
#开启数据库
sudo systemctl start postgresql-14
关闭防火墙或者暴露端口
安装postgres的服务器上面,可能开启了防火墙,导致数据库服务无法访问。这个时候可以关闭防火墙或者将5432端口暴露出来。关闭防火墙一般比较危险,建议开通端口。
注意,开通端口之后,记得重新加载防火墙,不然可能开通无效
#查看防火墙状态
systemctl status firewalld
#关闭防火墙
systemctl stop firewalld
#开启防火墙
systemctl start firewalld
#开通端口
firewall-cmd --zone=public --add-port=5432/tcp --permanent
#重新加载防火墙
firewall-cmd --reload
#查看已开通端口列表
firewall-cmd --list-port
设置环境变量
数据库安装好之后最好设置一下环境变量,这样后面使用指令会比较方便
# PGDATA是postgres存放数据的目录
export PGDATA=/var/lib/pgsql/14/data
export PATH=$PATH:$PGDATA
# postgres常用指令目录
export PATH=$PATH:/usr/pgsql-14/bin
source .bash_profile
设置postgres用户密码
数据库安装完成之后,会有一个默认的用户postgres,以及一个默认的数据库postgres,不过这个用户默 认是没有密码的,需要我们给这个用户设置一个密码。
如何设置这个密码呢,postgres数据库安装完成之后,默认会生成一个postgres用户(不过我在我的/home目录下面,没看到postgres目录)。可以通过如下指令进入postgres用户
#登录到root用户
su root
#切换到postgres用户
su postgres
登录到postgres用户之后,在服务器终端输入psql指令,回车,可以进入数据库操作页面,使用指令:\password,进入密码设置状态
开通远程连接,设置白名单
如果需要远程连接数据库,还需要进行白名单设置
首先,修改 postgresql.conf 文件 (该文件在/var/lib/pgsql/14/data即PG_DATA目录下面),将 listen_addresses取消注释,并设置 IP 值。
# * 代表监听所有IP,也可以指定特定的 IP 列表。这里不开通的话,客户端将无法访问
listen_addresses = '*'
#修改这个参数之后,需要重启数据库服务
sudo systemctl restart postgresql-14
修改 pg_hba.conf 文件,配置用户权限。
# 任意用户可以通过任意 IP 以 scram-sha-256 加密的方式登录,可以访问所有数据库
# 这里也可以指定用户、指定数据库、和客户端的ADDRESS,来进行权限控制
# DATABASE 表示可以访问的数据库, USER 表示可以访问的用户, ADDRESS表示可以访问的源IP地址
# TYPE DATABASE USER ADDRESS METHOD
host all ALL 0.0.0.0/0 scram-sha-256 # foo
#修改此配置文件需要重新加载,这个指令可在root用户下执行或者postgres用户下执行(这个指令执行的时候,可能还会从默认的PG_DATA目录中查找配置,如果不知道怎么修改的话,再次重启一下数据库也是可以的)
pg_ctl reload
使用pgAdmin访问数据库
完成上述操作之后,可以在本地打开pgAdmin,注册一个服务,连接到远程的数据库服务器,使用的用户名是postgres。
修改数据存储目录
前面有说,PGDATA表示数据的存储目录,这个存储目录是可以修改的(一旦修改,设置环境变量的地方也需要修改。 另外,这个改动发生在第一步中,初始化数据集之前)
# 执行下面命令,修改文件中指定的PGDATA
sudo vim /usr/lib/systemd/system/postgresql-14.service
#修改下面内容,指定新的数据存放目录
[Service]
Environment=PGDATA=/data/postgres/data
#修改/data/postgres/data目录的权限,否则初始化数据库的时候,相关配置无法写到该目录中
chmod 755 -R /data/postgres/data
chown postgres:postgres -R /data/postgres