如何在Ubuntu上安装和配置PostgreSQL

时间:2020-01-09 10:45:16  来源:igfitidea点击:

在本教程中,我们将学习如何在Ubuntu Linux上安装和使用开源数据库PostgreSQL。

PostgreSQL(或者Postgres)是一个功能强大,免费的开源关系数据库管理系统(RDBMS),在可靠性,功能强大和性能方面享有很高的声誉。它旨在处理各种规模的各种任务。它是跨平台的,是macOS Server的默认数据库。

在Ubuntu上安装PostgreSQL

PostgreSQL在Ubuntu主存储库中可用。但是,像许多其他开发工具一样,它可能不是最新版本。

首先在终端中使用以下apt命令检查Ubuntu存储库中可用的PostgreSQL版本:

apt show postgresql

在我的Ubuntu 18.04中,它显示PostgreSQL的可用版本是版本10(10 + 190表示版本10),而PostgreSQL版本11已经发布。

Package: postgresql
Version: 10+190
Priority: optional
Section: database
Source: postgresql-common (190)
Origin: Ubuntu

根据此信息,我们可以决定是要安装Ubuntu提供的版本,还是要获取最新发布的PostgreSQL版本。

方法1:从Ubuntu存储库安装PostgreSQL

在终端中,使用以下命令安装PostgreSQL

sudo apt update
sudo apt install postgresql postgresql-contrib

什么是postgresql-contrib?

postgresql-contrib或者contrib软件包包含一些其他实用工具和功能,这些工具和功能不是核心PostgreSQL软件包的一部分。在大多数情况下,最好将contrib软件包与PostgreSQL内核一起安装。

方法2:在Ubuntu中安装最新版本的PostgreSQL 11

要安装PostgreSQL 11,我们需要在sources.list中添加官方PostgreSQL存储库,添加其证书,然后从那里安装。

首先添加GPG密钥:

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add 

现在,使用以下命令添加存储库。如果我们使用的是Linux Mint,则必须手动替换Mins版本所基于的Ubuntu版本的lsb_release -cs

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'

现在一切就绪。使用以下命令安装PostgreSQL:

sudo apt update
sudo apt install postgresql postgresql-contrib

PostgreSQL GUI应用程序

我们还可以安装用于管理PostgreSQL数据库的GUI应用程序(pgAdmin):
sudo apt install pgadmin4

配置PostgreSQL

我们可以通过执行以下命令检查PostgreSQL是否正在运行:

service postgresql status

通过service命令,我们还可以启动,停止或者重新启动postgresql。输入服务postgresql并按Enter键将输出所有选项。现在,进入用户。

默认情况下,PostgreSQL创建一个拥有所有权限的特殊用户postgres。要实际使用PostgreSQL,我们必须首先登录该帐户:

sudo su postgres

提示应更改为类似于以下内容:

theitroad@localhost:/home/ubuntu$

现在,使用实用程序psql运行PostgreSQL Shell:

psql

应该提示我们:

postgress=#

我们可以输入\ q退出和\?求助。

要查看所有现有表,请输入:

\l

输出将类似于以下内容(按q键退出此视图):

PostgreSQL表

使用\ du可以显示PostgreSQL用户:

PostgreSQL用户

我们可以使用以下方式更改任何用户(包括postgres)的密码:

ALTER USER postgres WITH PASSWORD 'my_password';

注意:将postgres替换为用户名,将my_password替换为所需的密码。另外,请不要忘记;; (每列)之后。

建议我们创建另一个用户(不建议使用默认的postgres用户)。为此,请使用以下命令:

CREATE USER my_user WITH PASSWORD 'my_password';

如果运行\ du,则将看到my_user还没有属性。让我们添加超级用户:

ALTER USER my_user WITH SUPERUSER;

我们可以使用以下方法删除用户:

DROP USER my_user;

要以其他用户身份登录,请退出提示(\ q),然后使用以下命令:

psql -U my_user

我们可以使用-d标志直接连接到数据库:

psql -U my_user -d my_db

我们应该将PostgreSQL用户称为另一个现有用户。例如,我的用途是ubuntu。要从终端登录,请使用:

psql -U ubuntu -d postgres

注意:我们必须指定一个数据库(默认情况下,它将尝试将我们连接到与我们登录时所使用的用户名称相同的数据库)。

如果有错误:

psql: FATAL:  Peer authentication failed for user "my_user"

确保以正确的用户身份登录,并使用管理员权限编辑/etc/postgresql/11/main/pg_hba.conf:

sudo vim /etc/postgresql/11/main/pg_hba.conf

注意:将11替换为版本(例如10)。

在这里,替换行:

local   all             postgres                                peer

带有:

local   all             postgres                                md5

然后重启PostgreSQL:

sudo service postgresql restart

使用PostgreSQL与使用任何其他SQL类型数据库相同。