Linux下RPM包方式安装PostgreSQL(3)

两个细节,标记红色的部分是数据库主工作进程,其中明显表明了可执行程序和数据文件位置。另外就是大部分进程执行用户都是postgres,就说明虽然是通过root启动的程序,但是root也是用postgres用户进程启动程序。

本地连接情况,在本地可以使用psql作为客户端进行连接。

[root@TEST-DB ~]# su - postgres

-bash-4.1$ psql

psql (9.5.0)

Type "help" for help.

postgres=# help

You are using psql, the command-line interface to PostgreSQL.

Type:  \copyright for distribution terms

\h for help with SQL commands

\? for help with psql commands

\g or terminate with semicolon to execute query

\q to quit

postgres=# 

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

ALTER ROLE

postgres=# select * from pg_shadow;

usename  | usesysid | usecreatedb | usesuper | userepl | usebypassrls |              passwd   

| valuntil | useconfig 

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

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

postgres |      10 | t          | t        | t      | t            | md53175bce1d3201d16594ce

bf9d7eb3f9d |          | 

(1 row)

postgres-# \q

-bash-4.1$ exit

logout

根据标准psql命令,后面应当写上连接数据库的名称。如果没有写,就默认连接名称为postgres的数据库,这个库就是在initdb执行过程中创建好的内容。

4、远程连接配置

注意:我们当前所有操作都是在数据库服务器上进行的操作。默认情况下,Postgresql对于远程访问连接时拒绝的。我们需要进行额外的配置项目。

同MySQL相似,PG的很多配置参数都是散布在文本格式文件中的。在配置网络连接中,我们需要修改两个文件。

首先是PG数据文件下的pg_hba.conf。

[root@TEST-DB ~]# su - postgres

-bash-4.1$ cd /var/lib/pgsql/9.5/data/

-bash-4.1$ ls -l | grep conf

-rw------- 1 postgres postgres  4224 Jan 21 09:53 pg_hba.conf

-rw------- 1 postgres postgres  1636 Jan 21 09:53 pg_ident.conf

-rw------- 1 postgres postgres    88 Jan 21 09:53 postgresql.auto.conf

-rw------- 1 postgres postgres 21738 Jan 21 09:53 postgresql.conf

pg_hba.conf内容很多,我们需要修改其中关于允许连接站点的设置。

# "local" is for Unix domain socket connections only

local  all            all                                    peer

# IPv4 local connections:

host    all            all            127.0.0.1/32            ident

# IPv6 local connections:

host    all            all            ::1/128                ident

# Allow replication connections from localhost, by a user with the

# replication privilege.

#local  replication    postgres                                peer

#host    replication    postgres        127.0.0.1/32            ident

#host    replication    postgres        ::1/128                ident

在IPv4 Local connection部分进行配置。

# IPv4 local connections:

host    all            all            127.0.0.1/32            ident

host    all            all            172.17.107.0/24        password

host    all            all            172.17.197.0/24        password

连接IP地址后面的/24表示可以支持该网段所有IP地址访问。Password表示通过用户名密码验证方式连接。

另一个配置文件是postgresql.conf,其中定义了监听程序listener的监听范围。默认情况下取值如下:

# - Connection Settings -

#listen_addresses = 'localhost'        # what IP address(es) to listen on;

# comma-separated list of addresses;

# defaults to 'localhost'; use '*' for all

# (change requires restart)

#port = 5432                            # (change requires restart)

max_connections = 100                  # (change requires restart)

修改listen_addresses项目,去除掉注释信息,将localhost变为*。这样就控制监听程序监听来自所有IP地址的连接请求了。

# - Connection Settings -

listen_addresses = '*'          # what IP address(es) to listen on;

# comma-separated list of addresses;

# defaults to 'localhost'; use '*' for all

# (change requires restart)

#port = 5432                            # (change requires restart)

max_connections = 100                  # (change requires restart)

重新启动PG程序。

[root@TEST-DB ~]# service postgresql-9.5 restart

Stopping postgresql-9.5 service: [  OK  ]

Starting postgresql-9.5 service: [  OK  ]

在远程Windows服务器上,我们通过pgAdmin客户端工具配置好连接界面。

Linux下RPM包方式安装PostgreSQL

点击连接,可以确认成功。

Linux下RPM包方式安装PostgreSQL

5、结论

PG是目前比较流行的开源关系数据库产品。对于大多数的行业和企业而言,关系型数据库其实还是占到需求的主流位置的。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/dad9208914d4d3af955ef979432320b1.html