postgresql 知识的整理

时间:2024-03-04 13:09:10

实验环境: Centos 7

安装:

yum install postgresql-server 

安装完成后需要首先初始化数据库:

postgresql-setup initdb

如果希望完全删除之前的配置和数据,直接删除/var/lib/pgsql/data/ 目录,然后重新执行initdb即可。

安装完成后启动 postgresql服务

systemctl start postgresql

到此安装就完成了。

下一步我们需要登录到数据库中。  

不过在真正登录之前,我们需要了解一下 postgresql 的认证机制,打开  /var/lib/pgsql/data/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

 postgresql 的认证有很多种,这里记录三种: trust peer 和md5(password)

trust : 顾名思义,就是不需要认证即可访问

peer : 例如有系统用户 test01 ,如果使用peer认证,那么数据库中必须有一个同样叫做test01的数据库用户,然后我们就可以将系统用户切换到test01直接登录了。 在postgresql安装的时候默认会创建一个叫做postgres的系统用户和一个也叫做postgres的数据库用户,如果我们使用peer认证(默认local就是peer认证),就可以像下面这样登录。

sudo -u postgres psql   

 其实上面的操作要成功有一个前提,就是在数据库中有一个叫做postgres的数据库(它也是默认就有的)。

 如果没有与用户同名的数据库可以像下面这样操作

sudo -u xiaoming psql -d xiaoming_db

 md5或者password: 其实这是两种不同的认证,这不过基本一致,顾名思义就是使用密码认证,md5加密,password明文。

知道了以上这些认证的知识后我们就可以自己配置合适的认证了。 

https://www.postgresql.org/docs/9.0/static/auth-methods.html

postgresql的具体操作可以参考:

http://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql.html

大牛的教程,比我记录要强好多啦,O(∩_∩)O哈哈~

 

最后希望记录一下如何开启远程访问postgresql,它跟前面讲的认证机制有关系。

http://blog.csdn.net/ll136078/article/details/12747403