Ubuntu的默认存储库包含Postgres包,因此我们可以使用apt
包装系统轻松安装这些包。
sudo apt-get update
sudo apt-get install postgresql postgresql-contrib
使用PostgreSQL角色和数据库
默认情况下,Postgres使用称为“角色”的概念来处理身份验证和授权。这些在某些方面类似于普通的Unix风格的账户,但是Postgres并没有区分用户和组,而是倾向于更灵活的术语“角色”。
安装Postgres后,设置为使用ident身份验证,这意味着它将Postgres角色与匹配的Unix / Linux系统帐户相关联。如果Postgres中存在一个角色,则具有相同名称的Unix / Linux用户名将能够以该角色登录。
有几种方式可以使用此帐户访问Postgres。
切换到postgres帐户
安装过程创建了一个postgres
与默认Postgres角色关联的用户帐户。为了使用Postgres,我们可以登录到该帐户。
输入以下内容切换到postgres
服务器上的帐户:
sudo -i -u postgres
您现在可以通过键入以下命令立即访问Postgres提示符:
psql
您将立即登录并能够与数据库管理系统交互。
输入以下命令退出PostgreSQL提示符:
\q
您现在应该回到postgres
Linux命令提示符。
在不切换帐户的情况下访问Postgres
sudo -u postgres psql
这会将你直接登录到Postgres中,而不需要中间的bash
shell。
同样,您可以键入以下命令退出交互式Postgres会话:
\q
修改Postgres用户密码:
postgres=# \password Enter new password: Enter it again: postgres=#
远程连接postgres数据库的过程中可能会出现下面这个问题
Unable to connect to server:
FATAL: no pg_hba.conf entry for host "xxx.xxx.xxx.xxx", user "postgres", database "thingsboard", SSL off
PostgreSQL数据库为了安全,它不会监听除本地以外的所有连接请求,当用户通过JDBC访问是,会报一些如下的异常:
org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host
要解决这个问题,只需要在PostgreSQL数据库的安装目录下找到/data/pg_hba.conf
在其中加上请求连接的机器IP来允许相应IP的用户访问数据库