最近工作中需要部署一套数据库服务到内网服务器上,借此机会,我重新整理了postgresql数据库的搭建及入门使用方法

1、安装方式(两种选一种)

a、第一种方式

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 postgresql11-server

sudo /usr/pgsql-10/bin/postgresql-11-setup initdb

sudo systemctl enable postgresql-11

sudo systemctl start postgresql-11

注意:出现“缺少libzstd.so.1的依赖解决方案”,安装如下两个包即可解决

yum install epel-release.noarch -y

yum install libzstd.x86_64 -y

b、第二种方式

登录官网,找到对应的脚步进行下载安装

下载地址:https://www.postgresql.org/download/

安装完成后验证下服务是否正常启动,在linux服务器上执行并查看返回结果,看看进程里面是否存在postgresql相关的进程

ps -aux | grep postgres

2、设置登陆用户postgres

  • cat /etc/passwd查看系统中的用户列表,新增了postgres用户
  • 执行su – postgres切换到postgres用户。
  • 执行psql登录数据库。
  • 执行\l列出名下的数据库列表。
  • 执行ALTER USER postgres WITH PASSWORD ‘密码’; 修改postgres用户密码,结尾一定要带分号结束符 “;”

备注:

  • 列出所有库:\l
  • 列出所有用户:\du
  • 列出库下所有表:\d
  • 退出:\q

3、修改配置支持远程访问

默认情况下postgres是不支持远程登录的。需做如下两处修改:

(1)/var/lib/pgsql/11/data/postgresql.conf 配置修改

支持在本地所有地址上监听

说明:listen_addresses表示监听的IP地址,默认在localhost处监听,即127.0.0.1IP地址上监听,这会让远程的主机无法登录这台数据库。如果想从其他机器上登陆这台数据库,需把监听地址改为实际的网络地址,一种简单的方式是把这个值改为*,表示在本地的所有地址上监听。
参数port表示监听的数据库端口,默认为5432,支持自定义监听端口。

(2)/var/lib/pgsql/11/data/pg_hba.conf 配置修改

说明:添加红框内的配置以支持远程连接

完成上述2处配置修改后,需重启pg服务才能生效:

systemctl restart postgresql-11