PostgreSQL系列【1】Centos7安装PostgreSQL
最近工作中使用PostgreSQL比较多,所以准备把使用PosrgreSQL过程中的心得、整理的教程、遇到的问题分享出来。
一、安装
本文选择安装的版本为PostgreSQL 11,如果需要安装其他版本,请自行调整版本号。命令行均在root权限下执行。
1、安装存储库RPM
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
2、安装客户端软件包
yum install postgresql11
3、安装服务器软件包
yum install postgresql11-server
4、初始化数据库并启用自动启动
/usr/pgsql-11/bin/postgresql-11-setup initdb
sudo systemctl start postgresql-11
sudo systemctl enable postgresql-11.service
5、登录数据库并设置postgres密码
su postgres #切换用户
psql # 进入psql命令行
ALTER USER postgres WITH PASSWORD '密码'
6、因为postgres为超级用户,所以我们需要添加一个非超级用户的用户(test)。并且把postgres的基本权限给test、并且创建test数据库
CREATE USER test WITH
LOGIN
NOSUPERUSER
NOCREATEDB
NOCREATEROLE
INHERIT
NOREPLICATION
CONNECTION LIMIT -1
PASSWORD 'xxxxxx';
GRANT postgres TO test;
CREATE DATABASE test OWNER test;
二、配置PostgreSQL
1、因为PosggreSQL默认是不支持远程访问,所以我们需要修改配置,以支持远程访问,先退出psql、然后退出postgres用户,回到root用户。
\q
exit
打开编辑pg_hba.conf文件
vi /var/lib/pgsql/11/data/pg_hba.conf
如下图增加红线框出的部分(设置test用户,可以通过密码远程访问)。
host all test 0.0.0.0/0 md5
2、修改监听地址,下图红框标出的位置,‘localhost’改成’*’。
vi /var/lib/pgsql/11/data/postgresql.conf
3、重启数据库
systemctl restart postgresql-11
4、防火墙设置
查看防火墙 5432端口是否开启
firewall-cmd --list-port
如果没有则开启
firewall-cmd --zone=public --add-port=5432/tcp --permanent
firewall-cmd --reload
5、然后就可以通过pgAdmin、或者其他工具远程访问PostgreSQL了。
三、卸载
1、列出已安装的包
rpm -qa | grep postgresql
2、yum remove逐一删除
yum remove postgresql11-libs-11.6-1PGDG.rhel7.x86_64
yum remove postgresql11-server-11.6-1PGDG.rhel7.x86_64
yum remove postgresql11-contrib-11.6-1PGDG.rhel7.x86_64
yum remove postgresql11-11.6-1PGDG.rhel7.x86_64
3、删除服务管理脚本
rm -f /etc/init.d/postgresql-11
4、清空data文件
cd /var/lib/pgsql/11/
rm -rf data