当先锋百科网

首页 1 2 3 4 5 6 7

centos7默认的安装源里面自带了postgresql,我们可以不用下载postgresql安装包或者升级安装源,只不过自带的postgresql版本比较低,这里CentOS Linux release 7.2.1511(Core)系统,添加网易163的源之后,自带的postgresql是9.2版本,这里介绍如何通过yum安装postgresql以及安装之后的设置。默认安装之后,只会监听本机127.0.0.1地址,开启5432端口,而且只容许postgres用户登录。为了让远程客户端能够连接,我们需要修改配置监听地址改为"*"(postgresql.conf文件中),即监听所有地址。为了在本地无需切换到postgres用户就可以登录,我们需要增加在postgresql配置文件pg_hba.conf配置文件中修改peer为trust,即登录用户是可信的,无需验证权限,为了让外部主机可以登录,还需要增加一行配置信息。

host    all    all  0.0.0.0/0    md5

下面通过实战来演示如何安装以及配置postgresql数据库。

检查安装源:

yum search postgresql

安装:

yum install postgresql-server

 

安装postgresql-server会附带安装上postgres客户端,因此不必重复安装。安装完成,postgresql操作相关的命令都会添加到/usr/bin目录下,可以在命令行下直接使用。

[root@client usr]# which psql
/usr/bin/psql
[root@client sbin]# which postgresql-setup
/usr/bin/postgresql-setup
[root@client sbin]# whereis postgresql-setup
postgresql-setup: /usr/bin/postgresql-setup /usr/share/man/man1/postgresql-setup.1.gz

检查一下版本信息:

 

 同时,还会生成postgres用户,postgresql启动之后,在本机只能切换到postgres用户下才可以通过psql访问。

初始化数据库:

安装完成之后,不能直接启动数据库,需要先执行初始化,初始化之后,会生成postgresql相关配置文件和数据库文件,他们都会存放在路径/var/lib/pgsql/data下。

postgresql-setup initdb

检查一下数据库存储路径:

 

启动数据库:

service postgresql start

启动成功,会监听本机127.0.0.1的5432端口。 

登录测试:

默认情况下,我们使用psql postgres命令登录,使用的是root用户,会提示没有这个角色,我们按照提示使用psql -U postgres命令登录,发现提示Peer authentication failed for user "postgres",我们只能切换到postgres用户,然后直接登录:

需要解决root用户下无法通过psql -U postgres登录的问题,我们需要修改配置文件pg_hba.conf,将

local    all    all    peer

修改为:

local    all    all    trust 

另外,我们需要让外部IP能够连接本机的postgresql,我们需要修改postgresql.conf配置文件中的listen_addresses属性为"*",并且在pg_hba.conf配置文件中新增一行配置:

host    all    all    0.0.0.0/0    md5

修改配置:

配置文件经过初始化之后,全部会生成在/var/lib/pgsql/data目录下:

编辑postgresql.conf文件,修改监听地址:

 

再次启动数据库:

修改成功之后,重启数据库服务,监听本机地址发生变化,不再是127.0.0.1了。

登录测试:

本地可以在root用户下使用psql -U postgres直接登录了,不会报错。

不再出现之前登录失败的情况了。

 

远程连接测试:

安装postgresql就是为了让外部能够连接的,这里安装之前,需要修改postgres用户的密码,在本机,修改密码有两种方式:直接\password 的方式和通过alter user postgres with password 'postgres'语句:

远程登录的时候,我们需要用户名和密码,这里在windows上使用navicat premium:

至此,安装过程就彻底结束了,后续如何操作数据库,就是和安装无关了。