实验环境: 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,它跟前面讲的认证机制有关系。