首页 » PHP教程 » 搭建phppgsql技巧_Postgresql961源码安装及pg_hba设备

搭建phppgsql技巧_Postgresql961源码安装及pg_hba设备

访客 2024-12-02 0

扫一扫用手机浏览

文章目录 [+]

下载:

cd /usr/local/src

搭建phppgsql技巧_Postgresql961源码安装及pg_hba设备

wget https://ftp.postgresql.org/pub/source/v9.6.1/postgresql-9.6.1.tar.bz2

搭建phppgsql技巧_Postgresql961源码安装及pg_hba设备
(图片来自网络侵删)

tar -jxvf postgresql-9.6.1.tar.bz2

cd postgresql-9.6.1

安装依赖:

yum install readline readline-devel

编译安装:

当前目录为/usr/local/src/postgresql-9.6.1,可参考当前目录下的INSTALL文件,官方给出的安装教程

./configure && make && make install

adduser postgres

mkdir /usr/local/pgsql/data

chown postgres /usr/local/pgsql/data

su - postgres

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data--前台运行

nohup /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data </dev/null >>/usr/local/pgsql/data/server.log 2>&1 </dev/null &--后台运行

/usr/local/pgsql/bin/createdb test--创建测试数据库

/usr/local/pgsql/bin/psql test

pg_hba.conf配置

下面是常用的pg_hba.conf配置:

TYPE DATABASE USER ADDRESS METHOD

# \"大众local\"大众 is for Unix domain socket connections only

local all all trust

# IPv4 local connections:

host all all 127.0.0.1/32 trust

# IPv6 local connections:

host all all ::1/128 trust

TYPE段,定义了多种连接psql的办法:

local:利用本地unix套接字

host:利用tcp/ip连接(包含SSL和非SSL),“host”结合“IPv4地址”利用IPv4办法,结合“IPv6地址”则利用IPv6办法

hostssl:只能利用SSL TCP/IP连接

hostnossl:不能利用SSL TCP/IP连接

DATABASE段,指定哪个数据库,多个用逗号隔开,个中“all”只有在没有其他符合条款标情形下才代表“所有”,如有符合的条款,则代表“除了该条款之外的所有”,由于“all”的优先级最低,例如:

local db1 user1 ident

local all all ident

这2条都是local办法连接,第1条指定了特定 的“db1”,以是第2条的“all”则代表“除了db1之外的所有”,同理USER段的“all”也是如此。

USER段,指定哪个数据库用户,多个用逗号隔开。

ADDRESS段,该项是“IPv4、IPv6”的地址,用来指定主机或网段,“local”办法不必填写。

METHOD段,指定如何处理客户真个认证,常用的认证办法有:ident,md5,password,trust,reject。

ident是linux下postgresql默认的local认证办法,凡是能精确上岸做事器的操作系统用户,就能利用本用户映射的数据库用户在无需密码的情形下上岸数据库,用户映射文件为pg_ident.conf,这个用户记录着操作系统用户与数据库用户的映射关系,如果一个操作系统用户在这个文件中没有映射的数据库用户,则默认映射与之同名的数据库用户,例如,有一个名为user1的操作系统用户,同时有一个与之同名的数据库用户,那么user1在上岸操作系统之后,可直接输入psql,以数据库用户user1的身份且无需密码的情形下上岸数据库。
我们在利用psql -U username上岸数据库的时候,数据库中已经创建了该username用户,但还会涌现“username ident 认证失落败”的缺点,便是由于在pg_ident.conf文件中没有映射关系。

md5是常用的密码认证办法,如未利用ident,则建议利用md5,密码因此md5形式传送给数据库,较安全,且不需建立同名的操作系统用户。

password因此明文密码传送给数据库,建议不要在生产环境中利用。

trust是只要知道数据库用户名就不须要密码或ident就能登录,建议不要在生产环境中利用。

reject是谢绝认证。

在利用pgAdmin或php上岸数据库的时候,无论是否是本地,都因此TCP/IP连接,符合host办法,如果是本地(即localhost),则ADDRESS为127.0.0.1/32

在pg_hba.conf文件修正后,可通过 pg_ctl -D PGDATA reload 来重新加载文件(PGDATA 为数据库目录)

另:PostgreSQL默认只监听本地端口,用netstat -tuln只会看到“tcp 127.0.0.1:5432 LISTEN”。
修正postgresql.conf中的listen_address=,监听所有端口,这样远程才能通过TCP/IP登录数据库,用netstat -tuln会看到“tcp 0.0.0.0:5432 LISTEN”。

相关文章

介绍白点控制之路,从原理到方法

白点,作为生活中常见的现象,无处不在。对于如何控制白点,许多人却感到困惑。本文将从原理出发,探讨白点的控制方法,并结合实际案例,为...

PHP教程 2025-01-03 阅读1 评论0

介绍直播王者,如何开启你的电竞直播之旅

随着电竞产业的蓬勃发展,越来越多的年轻人投身于电竞直播行业。王者荣耀作为一款备受欢迎的MOBA手游,吸引了大量玩家和观众。如何开启...

PHP教程 2025-01-03 阅读1 评论0