CentOS7 yum安装配置PostgreSQL

2018-05-04 17:02:21 17424

一.验证环境

1. 操作系统

CentOS-7-x86_64-Everything-1511

2. PostgresSQL版本

PostgreSQL 9.6.3:https://www.landui.com/

二.yum安装

在官网的这里可以找到对应版本的yum的安装存储库软件包
https://www.landui.com/repopackages.php
这里我们用9.6版本为例子
image.png

1. 安装rpm储库软件包

[root@psql_master ~]# yum install -y https://www.landui.com/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

2. 安装客户端

[root@psql_master ~]# yum install -y postgresql96

3. 安装服务器端

#yum安装postgresql,默认会建一个名为”postgres”的系统账号,用于执行PostgreSQL;

#同时数据库中也会生成一个名为”postgres”的数据库用户,且密码已自动生成,需要进入数据库后修改;

#PostgreSQL在数据库用户同名的系统账号下登录免密。

[root@psql_master ~]# yum install -y postgresql96-server

4. 初始化

[root@psql_master bin]# /usr/pgsql-9.6/bin/postgresql96-setup initdb

5. 设置开机启动

[root@psql_master ~]# systemctl enable postgresql-9.6

6. 启动

[root@psql_master ~]# systemctl start postgresql-9.6

三.配置使用

1. 修改用户密码

#yum安装postgresql,默认会建一个名为”postgres”的系统账号,用于执行PostgreSQL;
#切换用户postgresql下

[root@psql_master ~]# su - postgres

#切换用户后,提示符变更为“-bash-4.2$”;#同时数据库中也会生成一个名为”postgres”的数据库用户,且密码已自动生成;

#PostgreSQL在数据库用户同名的系统账号下登录免密;

-bash-4.2$ psql -U postgres

#进入数据库后修改密码;

postgres=# alter user postgres with password 'postgres@123';

注意:这里特别注意一点就是这句话的最后要用;号来结尾。并且有系统提示不然就不生效。如图中系统提示:CREATE ROLE
image.png

2. 允许远程访问

#配置文件中,默认只能本机访问postgresql;

#修改listen_addresses = 'localhost'为listen_addresses = '*',允许所有远程访问;#修改配置文件需要重启服务。

[root@psql_master ~]# sed -i "s|#listen_addresses = 'localhost'|listen_addresses = '*'|g" /var/lib/pgsql/9.6/data/postgresql.conf

默认配置文件在/var/lib/pgsql/9.6/data/下postgresql.conf

3. 主机认证

#在第82行之后,”IPv4 local connections”下新增允许的客户端;

#“host” 代表主机类型,第一个“all”代表db ,第二个“all”代表user ,“172.29.3.67/32” 代表client ip,“trust”代表认证方式;

#认证方式除“trust”外,还有“peer”, “ident”, “md5”, “password”等,具体可参考pg-hba文件: https://www.landui.com/docs/current/static/auth-pg-hba-conf.html

#修改pg.hba文件需要重启服务。

[root@psql_master ~]# vim /var/lib/pgsql/9.6/data/pg_hba.conf

在最好加上这样一段就可以让任何主机连接了

host   all     all     0.0.0.0/0   md5


4. 设置环境变量

[root@psql_master ~]# vim /etc/profileexport PATH=$PATH:/usr/pgsql-9.6/bin
[root@psql_master ~]# source /etc/profile

5. 重启服务

[root@psql_master ~]# systemctl restart postgresql-9.6

6. iptables

#postgresql默认开启tcp5432端口

[root@psql_master ~]# vim /etc/sysconfig/iptables-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
[root@psql_master ~]# systemctl restart iptables

这里用的是iptables 

四.使用验证

1. 查看端口

[root@psql_master ~]# netstat -tunlp

image.png

2. 简单使用

1)创建用户

postgres=# create user landui with password '123456';

2)创建数据库

#同时指定数据库的所有者

postgres=# create database landuidb owner landui;

3)数据库赋权

#未赋权则账户只能登录控制台

postgres=# grant all privileges on database landuidb to landui;


4)登录新建数据库

#在操作系统层使用新建的账号登录新建的数据库,登录后提示符为“postdb1=>”;

#如果在postgres账户下直接使用“postgres=# \c postdb1;“登录,则登录用户依然是postgres。

-bash-4.2$ psql -U postuser1 -d postdb1 -h 127.0.0.1 -p 5432

或者用软件测试
image.png

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: