PostgreSQL数据库的安装与配置

前端之家收集整理的这篇文章主要介绍了PostgreSQL数据库的安装与配置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Postgresql是以加州大学伯克利分校计算机系开发的 POSTGRES(4.2版本)为基础的对象关系型数据库管理系统(ORDBMS)。Postgresql支持大部分 sql标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、多版本并发控制。同样,Postgresql 可以用许多方法扩展,比如,通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言。并且,因为许可证的灵活,任何人都可以以任何目的免费使用,修改和分发 Postgresql,不管是私用,商用,还是学术研究使用。

下面我们就来介绍一下Postgresql在CentOS 5.x上的安装与配置:

1.Postgresql数据库的安装

首先去Postgresql官方网站去下载相关的Postgresqlrpm安装包,下载地址为:

http://yum.postgresql.org/packages.php

由于安装包比较多,其实我们只需要postgresql-libs库、postgresql客户端和postgresql服务器这三个rpm包就可以了。

1. 安装postgresql-libs

[root@RPUMaster Postgresql]# rpm -ivh postgresql91-libs-9.1.2-1PGDG.rhel5.i386.rpm

2. 安装postgresql客户端

[root@RPUMaster Postgresql]# rpm -ivh postgresql91-9.1.2-1PGDG.rhel5.i386.rpm

3. 安装postgresql服务器

[root@RPUMaster Postgresql]# rpm -ivh postgresql91-server-9.1.2-1PGDG.rhel5.i386.rpm

这样就安装好了Postgresql数据库,其数据库默认的存放路径为【/var/lib】,由于我们给数据库划分了【/data】分区,需要将数据库路径修改成【/data】,操作如下:

[root@RPUMaster Postgresql]# vim /etc/init.d/postgresql-9.1

4. 初始化数据库和启动服务

[root@RPUMaster Postgresql]# /etc/init.d/postgresql-9.1 initdb

[root@RPUMaster Postgresql]# /etc/init.d/postgresql-9.1 start

执行【/etc/init.d/postgresql-9.1 initdb】命令,就在【/var/lib/pgsql/9.1/data】目录下创建了Postgresql数据库,这样就完成了Postgresql数据库的安装工作。

2. Postgresql数据库的配置

Postgresql安装完成后,执行初始化数据库操作后,在目录【/var/lib/pgsql/9.1】下生成data目录,这个目录保存了数据库的相关配置信息。

2.1 配置postgresql服务

Postgresql服务器安装完成后,默认是不会开机启动的,使用下面的命令让其开机启动:

[root@RPUMaster Postgresql]# chkconfig postgresql-9.1 on

2.2 配置Postgresql服务器的登录密码

Postgresql服务器安装完成后,就会建立postgres用户,密码为空,但这时使用如果客户端命令【psql -U postgres】来登录Postgresql服务器是登录不上的,命令如下:

[root@RPUMaster Postgresql]# psql -U postgres

psql: FATAL: Peer authentication Failed for user "postgres"

看来是用户postgres的权限和认证方式有问题,这该怎么办呢?答案很简单,直接找度娘!

原来是目录【/var/lib/pgsql/9.1/data】下的pg_hba.conf文件决定了Postgresql服务器用户的权限以及认证方式。

pg_hba.conf文件最后有一个列表,它决定了分派给每个用户的权限以及认证方式。文件格式是“Type Database User Address Method”。

下面介绍如何为用户postgres添加密码"123456",操作如下:

1. 修改pg_hba.conf文件中的【local all all peer】行,暂时将【peer】选项修改成【trust】,重启postgresql服务,就可以登录Postgresql服务器了;

2. 登录Postgresql服务器,使用数据库命令来修改用户密码,命令如下:

[root@RPUMaster Postgresql]# psql -U postgres

psql (9.1.2)

Type "help" for help.

postgres=# SELECT usename,passwd FROM pg_shadow;

usename | passwd

----------------+----------------------------------------------------------

postgres |

(1 row)

postgres=# ALTER USER postgres PASSWORD '123456';

ALTER ROLE

postgres=# SELECT usename,passwd FROM pg_shadow;

usename | passwd

----------------+----------------------------------------------------------

postgres | md57521781ec5135ab1713b83ee4e714d7e

(1 row)

这样通过前后select语句对比,就知道密码设置成功了。

3. 然后修改pg_hba.conf文件中的【local all all peer】行,将【trust】选项修改成【md5】,重启postgresql服务,这样以后登录Postgresql服务器就需要输入密码了。

2.3 配置Postgresql服务器的访问权限

Postgresql服务器的配置权限包括本地访问和远程访问的权限,下面我就逐一介绍这两种访问权限的配置方法

2.3.1 本机访问权限

所谓的本机访问权限就是使用【psql -U postgres –h localhost】来登录Postgresql服务器,其实这个配置比较简单,只需要修改pg_hba.conf文件中的【host all all 127.0.0.1/32 ident】行,将【ident】选项修改成【md5】,重启postgresql服务就可以了。

2.3.2 远程访问权限

如果你用NavicatPostgresql前端工具来访问Postgresql服务器,发现还是连接不上的,看来还得对Postgresql服务器进行配置。

配置操作过程如下:

1. 首先看看防火墙是否开启,如果开启需要允许5432端口的连通。如不知怎样配置防火墙,就关闭它。

2. 配置postgresql.conf文件,它和pg_hba.conf文件在同一个目录下。如果想让Postgresql监听整个网络的话,将listen_addresses前的#去掉,并将listen_addresses = 'localhost'改成listen_addresses = '*',其中*表示所有网络链接

listen_addresses = '*'

3. 修改pg_hba.conf文件,在其最后添加

host all all 0.0.0.0/0 md5

其中0.0.0.0/0表示所有IP地址。修改好这两个配置文件后,重启postgresql服务,就可以远程访问Postgresql服务器了。

猜你在找的Postgre SQL相关文章