目的
PostgreSQL作为一个全球支持的开源数据库,拥有超过30年历史,得益于各种可用的插件,它以健壮性、可伸缩性和性能而闻名。
首先,如果要完成PostgreSQL的安装与使用,需要通过SSH连接连接到服务器,您可以通过有关教程进行连接。若是本地服务器,则进入下一步,打开服务器的终端。
PostgreSQL安装
要继续安装PostgreSQL,请使用apt包管理器。确保更新缓存:
$ sudo apt update && sudo apt install postgresql postgresql-contrib
使用systemctl start命令确保服务器正在运行:
sudo systemctl start postgresql.service
验证安装
现在你已经完成了Ubuntu上Postgres的安装,各项服务将自动启动。作为第一步,通过用psql连接到PostgreSQL数据库来验证安装。
psql是一个命令行工具,用来与PostgreSQL服务器交互。这将输出服务器的版本。
sudo -u postgres psql -c "SELECT version();"
要以postgre用户的身份登录PostgreSQL,你可以使用psql。可以按照下面的方式进行:
sudo su – postgres
要使用PostgreSQL,请输入:
psql
它将授予你对PostgreSQL实例的访问权。如果要退出,可以使用:
\q
管理用户和权限
如前所述,PostgreSQL假设其服务中存在的每个用户也存在于系统中。为了创建一个新的用户,首先通过adduser把它添加到系统中。
$ sudo adduser tutorial
在下面的例子中,正在创建一个名为 “tutorial “的用户,没有指定其他信息。一旦完成,就可以创建PostgreSQL用户。首先用postgres用户登录。
$ sudo -i -u postgres
$ createuser --interactive
创建完用户后,设置一个密码,通过超级用户postgres登录,并改变你刚刚创建的用户。
$ psql postgres=# ALTER USER tutorial PASSWORD 'password'; ALTER ROLE;
也可以通过运行该命令为新创建的用户创建一个数据库。
$ createdb tutorial
完成后,退出并尝试用新创建的用户登录。
$ sudo -i -u tutorial
启用对外部客户的访问
在某些情况下,可能需要允许外部客户(例如你的机器)访问服务器上的一个或多个数据库。通常情况下,PostgreSQL不被配置为接受非本地的连接,所以要修改一些配置文件。
第一个要修改的文件是主配置文件,在
/etc/postgresql/10/main/postgresql.conf.
请确保编辑
listen_addresses = 'localhost'
和:
listen_addresses = '*'
通过这种方式,你通知PostgreSQL期望从任何网络接口进入的连接。
请确保保存你的修改,继续编辑/etc/postgresql/10/main/pg_hba.conf中管理服务器访问规则的文件,添加以下一行。
host tutorial tutorial 0.0.0.0/0 md5
这种修改允许 “tutorial “用户从任何主机访问它的数据库。而它的意思是:
- host: 你接受的连接类型。可能的值是:
· local: 来自系统的非网络连接
· host: 任何类型的TCP / IP连接
· hostssl: 仅在SSL协议下的TCP / IP连接 - tutorial: 数据库名称要允许访问,用“all”指代所有数据库
- tutorial: 用户名授予访问权限
- 0.0.0.0/0: IP地址,在您的情况下,您正在授权访问任何IPv4地址
- md5: 公认的认证方法,其中一些重要的是:
· md5: 密码身份验证
· trust: 无条件接受连接
· peer: 使用系统用户名只连接同名的数据库
要了解更多信息,请访问地址 https://www.postgresql.org/docs/9.1/auth-pg-hba-conf.html 或官方PostgreSQL文档。
完成之后,请重新启动服务以使所有更改生效:
$ sudo systemctl restart postgresql