postgresql9.6.2 rpm 安装

1、安装rpm包

rpm -ivf postgresql96-libs-9.6.2-2PGDG.rhel7.x86_64.rpm 

rpm -ivf postgresql96-9.6.2-2PGDG.rhel7.x86_64.rpm 

rpm -ivf postgresql96-server-9.6.2-2PGDG.rhel7.x86_64.rpm 

rpm -ivf postgresql96-contrib-9.6.2-2PGDG.rhel7.x86_64.rpm

rpm -ivf postgresql96-devel-9.6.2-2PGDG.rhel7.x86_64.rpm


2、初始化PostgreSQL 数据库

/usr/pgsql-9.6/bin/postgresql96-setup initdb

3、启动服务

systemctl start postgresql-9.6.service

4、把PostgreSQL 服务加入到启动列表

systemctl enable postgresql-9.6.service

5、修改PostgreSQL 数据库用户postgres的密码(注意不是linux系统帐号)

PostgreSQL 数据库默认会创建一个postgres的数据库用户作为数据库的管理员,默认密码为空,我们需要修改为指定的密码,这里设定为’postgres’。

# su - postgres 切换用户,执行后提示符会变为 '-bash-4.2$'

  

$  psql 登录数据库,执行后提示符变为 'postgres=#'

  

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

ALTER ROLE

postgres=# select * from pg_shadow;

6、测试数据库

6.1 创建测试数据库

postgres=# create database test;

6.2、切换到david 数据库

# \c test

6.3、创建测试表

test=# create table t1 (id integer, name text);

6.4、插入测试数据

test=# insert into t1 values (1,'t1');

INSERT 0 1

test=# 

6.5、选择数据

test=# select * from t1 ;

 id | name  

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

  1 | t1

(1 row)

test=#

测试完成,RPM包安装成功。

7、修改linux 系统用户postgres 的密码

PostgreSQL 数据库默认会创建一个linux 系统用户postgres,通过passwd 命令设置系统用户的密码为postgres。

# passwd postgres

8、修改PostgresSQL 数据库配置实现远程访问

8.1 修改postgresql.conf 文件

# vim /var/lib/pgsql/9.6/data/postgresql.conf

如果想让PostgreSQL 监听整个网络的话,将listen_addresses 前的#去掉,并将 listen_addresses = 'localhost' 改成 listen_addresses = '*'

8.2 修改客户端认证配置文件pg_hba.conf

将需要远程访问数据库的IP地址或地址段加入该文件。

# vim /var/lib/pgsql/9.6/data/pg_hba.conf

在“# IPv4 local connections”添加

host    all             all             127.0.0.1/32            ident

host    all             all             192.168.1.199/24        md5

9. 重启服务以使设置生效

# systemctl restart postgresql-9.6.service

10、远程测试可以使用客户端工具或者装有postgresql的机器,通过cmd访问

psql -U postgres -h 192.168.1.199

问题:

1)、配置支持远程连接

$ vim /var/lib/pgsql/9.6/data/pg_hba.conf

#### 直接配置为不限制IP,即0.0.0.0,注意:/后面也必须为0!!! ####

将 127.0.0.1/32 改为 0.0.0.0/0

顺便将该行method属性的ident修改为trust,不然用客户端工具远程连接的时候会报用户postgres ident认证失败的错误。


2)、去除版本号启动服务

cd /usr/lib/systemd/system

ln -s postgresql-9.6.service postgresql.service

以后就可以使用

systemctl start postgresql