CentOS 7 上的常见 Postgres 任务

本指南将引导您完成围绕 Postgres 服务器的一些常见任务。 在本教程中,我们将介绍安装 Postgres、创建新数据库和用户、备份数据库等等! 让我们深入挖掘!

注意:本教程的其余部分要求您拥有 特权。 首先以 root 身份登录或在这些命令前面加上 sudo.

安装 PostgreSQL

多亏了 YUM 包管理器,在我们的 CentOS VPS 服务器中安装 Postgres 很简单。 运行以下命令在您的系统上安装 Postgres:

yum install -y postgres-server

配置 PostreSQL

现在 Postgres 已安装,是时候配置服务了。 首先,Postgres 要求您在使用数据库之前对其进行初始化。 幸运的是,它们提供了一个命令,让我们可以轻松完成这一步:

postgres-setup initdb

我们会将 Postgres 设置为在您的服务器启动时自动启动。 运行以下命令以在启动时启用服务:
systemctl enable postgres

接下来,我们将启动服务。 如果 Postgres 尚未运行,以下命令将启动它:
systemctl start postgres

最后,我们检查以确保重启后 Postgres 正在运行:
service postgres status

输出应显示 活跃(运行) 这表明服务已启动,我们已准备好继续!

创建新数据库并添加新用户

Postgres 在您的 CentOS Linux 系统上以“postgres”用户身份运行,而不是以“root”身份运行。 这一点很重要,因为您不能以 root 身份与 Postgres 交互。

首先,让我们切换到“postgres”用户。 当我们安装 Postgres 时,此用户是在您的系统中自动创建的。
su - postgres

接下来,我们将创建一个新数据库。 我们称之为“我的数据库“ 在我们的 example,但您可以随意命名。
createdb mydatabase

现在,我们将为该数据库添加一个新用户。 在这个 example,我们正在使用用户名“我的用户名”,但你可以随意命名。
createuser myusername

授予 PostgreSQL 数据库权限

到目前为止,我们已经安装了 Postgres,创建了一个新数据库,并创建了一个用于访问数据库的新用户。 只剩下一步,那就是授予权限,以便我们的新用户可以访问数据库。 要开始这个过程,我们必须首先进入“postgres shell”。 Enter 以下命令:
psql

按回车后,您应该注意到您的命令提示已更改,表明您现在处于 Postgres shell 中。
psql (9.2.24)
Type “help” for help.
postgres =#

从这里,我们现在可以为新用户添加访问数据库的权限。 Enter 以下命令为我们的用户设置密码。 有几件事情需要注意。 首先,需要密码周围的单引号! 其次,一定要换 example 我的安全密码 获取合法的安全密码! 最后,请务必在语句末尾包含分号。 很容易错过!
alter username myusername with encrypted password ‘my_secure_password’;

Postgres 应该回复以下文本,让您知道它成功了。
ALTER ROLE

现在已经创建了密码,我们将设置数据库的权限。 这将允许 myusername 访问 mydatabase。
grant all privileges on database mydatabase to myusername;

如果命令成功,Postgres 将回复以下文本。
GRANT

让我们仔细检查我们的工作并验证数据库是否显示在 Postgres 中。 从外壳,运行 列表 命令并仔细观察输出。 你应该看到“我的数据库”在数据库列表中。

我们完成了! Enter 以下命令离开 Postgres shell。
quit

如何备份 PostgreSQL 数据库

有几种方法可以备份 Postgres 数据库。 对于我们的 example 今天,我们将向您展示如何使用优秀的“pg_dump”命令,它将整个数据库输出为单个文件。 创建备份是一件轻而易举的事! 运行以下命令来备份我们的数据库。 请注意,我们使用了名称“我的数据库.bak“ 在我们的 example但您可以随意命名备份文件。
pg_dump mydatabase > mydatabase.bak

您现在可以轻松地复制或移动此文件,以存储备份。 作为最佳实践,我们强烈建议将备份存储在专用备份磁盘上,与操作系统驱动器分开。 这样,即使在不太可能发生系统崩溃的情况下,您的备份也是安全可靠的。

如何删除 PostgreSQL 数据库

删除数据库是一个简单的过程。 它要求您首先访问 Postgres shell。 快速提醒您可以使用以下命令访问 Postgres shell:
psql

从这里,删除数据库是一个命令。 让我们删除我们的示例数据库。
drop database mydatabase

Postgres 将通过以下消息确认成功:
DROP DATABASE

注意:如果你指定一个不存在的数据库,Postgres 会回复如下错误:
ERROR: database “my_other_database” does not exist

您可以使用以下命令验证数据库是否已删除 列表 Postgres shell 中的命令。 观察输出,你应该注意到“我的数据库”已从数据库列表中删除。

如何从备份中恢复 PostgreSQL 数据库

现在我们已经删除了名为“我的数据库”,让我们看看如何从我们创建的备份中恢复该数据库。 首先,我们需要使用一个空模板来存放恢复的数据库。 确保以 Postgres 用户身份运行以下命令,并从 BASH shell(而不是 Postgres shell!)
createdb -T template0 mydatabase

现在我们有了模板占位符,我们可以导入数据。
psql mydatabase < /path/to/mydatabase.bak

数据库现已恢复。 如果你跑 列表 再次从 Postgres shell 中,您将看到“mydatabase”再次出现在我们的数据库列表中!

恭喜你完成了这部分。 我们在本教程中涵盖了很多内容! 我们只是触及了这个主题的皮毛,您已经开始了解为什么数据库管理员在许多公司中担任专门的职位! 幸运的是,Liquid Web 可以帮助您满足所有数据库需求。 我们的专业团队可以帮助建议和管理您的数据库。 如果您有任何问题,请给我们留言,感谢您的阅读!