如何在Debian 8安装并使用PostgreSQL 9.4

介绍

关系数据库是满足众多需求的数据组织的基石。 他们为一切从网上购物到火箭发射。 一个数据库是既可敬,但仍然在游戏中是PostgreSQL。 PostgreSQL遵循大多数SQL标准,有ACID事务,支持外键和视图,并且仍在积极开发中。

如果你运行的应用程序需要稳定性,软件包质量和易于管理,Debian 8(代号“Jessie”)是Linux发行版的最佳选择之一。 它的移动比其他“发行”慢一点,但其稳定性和质量是公认的。 如果你的应用程序或服务需要一个数据库,Debian 8和PostgreSQL的组合是城里最好的之一。

在本文中,我们将向您展示如何在一个新的Debian 8 Stable实例上安装PostgreSQL并开始使用。

先决条件

第一件事是得到一个Debian 8稳定系统。 您可以按照从指令与Debian 8初始服务器设置的文章。 本教程假设您已经准备好了a Debian 8 Stable Droplet。

除非另有说明,本教程中的所有命令都应以具有sudo权限的非root用户身份运行。 要了解如何创建用户并授予他们Sudo权限,请与Debian 8初始服务器设置

安装PostgreSQL

在安装PostgreSQL之前,请通过以下方式更新apt软件包列表,确保您拥有来自Debian存储库的最新信息:

sudo apt-get update

您应该看到正在更新的包列表和以下消息:

Reading package lists... Done.

有迹象表明,以启动几个包postgresql

  • postgresql-9.4 :PostgreSQL服务器软件包
  • postgresql-client-9.4 :客户端PostgreSQL的
  • postgresql :一个“综合包”是由比较好解释了Debian的手册Debian新维护指南

要直接安装postgresql-9.4包:

sudo apt-get install postgresql-9.4 postgresql-client-9.4

当记者问,键入Y安装软件包。 如果一切顺利,包现在从存储库下载并安装。

检查安装

要检查PostgreSQL服务器已正确安装和运行时,您可以使用命令ps

# ps -ef | grep postgre

你应该在终端上看到这样的东西:

postgres 32164     1  0 21:58 ?        00:00:00 /usr/lib/postgresql/9.4/bin/postgres -D /var/lib/   postgresql/9.4/main -c config_file=/etc/postgresql/9.4/main/postgresql.conf
postgres 32166 32164  0 21:58 ?        00:00:00 postgres: checkpointer process
postgres 32167 32164  0 21:58 ?        00:00:00 postgres: writer process
postgres 32168 32164  0 21:58 ?        00:00:00 postgres: wal writer process
postgres 32169 32164  0 21:58 ?        00:00:00 postgres: autovacuum launcher process
postgres 32170 32164  0 21:58 ?        00:00:00 postgres: stats collector process 

成功! PostgreSQL已成功安装并正在运行。

访问PostgreSQL数据库

在Debian和PostgreSQL安装有默认用户和默认的数据库都被称为postgres 要连接到数据库,首先你需要切换到postgres通过发出以下命令,同时以root身份登录(这不会使用sudo访问工作)的用户:

su - postgres

你现在应该被记录为postgres 要启动PostgreSQL的控制台,请键入psql

psql

完成! 您应该登录PostgreSQL控制台。 您应该看到以下提示:

psql (9.4.2)
Type "help" for help.

postgres=# 

要退出psql的控制台只需要使用命令\q

创建新角色

默认情况下,Postgres使用一个称为“角色”的概念来帮助身份验证和授权。 这些在某些方面类似于常规的Unix风格的帐户,但PostgreSQL不区分用户和组,而更喜欢更灵活的术语“角色”。

安装后,PostgreSQL设置为使用“ident”身份验证,这意味着它将PostgreSQL角色与匹配的Unix / Linux系统帐户相关联。 如果存在PostgreSQL角色,则可以通过登录到相关的Linux系统帐户来登录。

安装过程创建了一个与默认Postgres角色相关联的名为postgres的用户帐户。

要创建其他角色,我们可以使用createuser命令。 请记住,该命令应作为用户postgres ,而不是PostgreSQL的控制台中:

createuser --interactive

这基本上是一个交互式shell脚本,它调用正确的PostgreSQL命令来为您的规范创建一个用户。 它会问你一些问题:角色的名称,是否应该是超级用户,如果角色应该能够创建新的数据库,并且如果角色将能够创建新的角色。 man页提供了更多信息:

man createuser

创建新数据库

默认情况下,PostgreSQL设置为通过匹配系统帐户请求的身份验证角色。 (您可以获取关于此的更多信息postgresql.org )。 它还带有一个假设,即存在一个匹配的数据库以供角色连接。 所以,如果我有一个名为用户test1 ,该角色将尝试连接到一个数据库名为test1默认。

你可以通过简单地调用这个命令的创建相应的数据库postgres用户:

createdb test1

新的数据库test1 ,现在被创建。

使用新用户连接到PostgreSQL

让我们假设你有一个名为Linux的帐户test1 ,创建一个PostgreSQL test1作用,与之相匹配的,并创建了数据库test1 在Linux更改用户帐户test1

su - test1

然后,连接到test1数据库作为test1使用命令PostgreSQL的作用:

psql

现在,你应该看到PostgreSQL的提示与新创建的用户test1 ,而不是postgres

创建和删除表

现在你知道如何连接到PostgreSQL数据库系统,我们将开始讨论如何完成一些基本任务。

首先,让我们创建一个表来存储一些数据。 让我们创建一个描述游乐场设备的表。

此命令的基本语法是这样的:

CREATE TABLE table_name (
    column_name1 col_type (field_length) column_constraints,
    column_name2 col_type (field_length),
    column_name3 col_type (field_length)
);

正如你所看到的,我们给表一个名字,然后定义我们想要的列,以及字段数据的列类型和最大长度。 我们还可以选择为每个列添加表约束。

您可以了解更多有关如何创建并在管理的Postgres表PostgreSQL中如何创建,删除,管理与表上的云服务器的文章。

为了我们的目的,我们将创建一个简单的表如下:

CREATE TABLE playground (
    equip_id serial PRIMARY KEY,
    type varchar (50) NOT NULL,
    color varchar (25) NOT NULL,
    location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')),
    install_date date
);

我们做了一个游乐场表,盘点我们有的设备。 这从设备ID开始,该设备ID是串行类型。 此数据类型是自动递增的整数。 我们给这个列提供了主键的约束,这意味着值必须是唯一的而不是null。

对于我们的两个列,我们没有给出字段长度。 这是因为一些列类型不需要设置长度,因为长度由类型隐含。

然后我们给出设备类型和颜色的列,每列不能为空。 然后,我们创建一个位置列,并创建一个约束,要求该值为八个可能的值之一。 最后一列是记录我们安装设备的日期的日期列。

看表,使用命令\dt在PSQL提示。 结果将类似于

             List of relations
 Schema |    Name    | Type  |  Owner 
--------+------------+-------+----------
 public | playground | table | postgres

你可以看到,我们有我们的游乐场表。

在表中添加,查询和删除数据

现在我们已经创建了一个表,我们可以插入一些数据到它。

让我们添加一个幻灯片和一个秋千。 我们通过调用我们要添加到的表,命名列,然后为每个列提供数据。 我们的幻灯片和秋千可以这样添加:

INSERT INTO playground (type, color, location, install_date) VALUES ('slide', 'blue', 'south', '2014-04-28');
INSERT INTO playground (type, color, location, install_date) VALUES ('swing', 'yellow', 'northwest', '2010-08-16');

你应该注意到一些事情。 首先,请记住列名不应该引用,但是输入的列值需要引号。

要记住的另一件事是,我们没有为输入值equip_id列。 这是因为每当创建表中的新行时都会自动生成。

然后,我们可以通过键入以下内容获取我们添加的信息:

SELECT * FROM playground;

输出应为

 equip_id | type  | color  | location  | install_date 
----------+-------+--------+-----------+--------------
        1 | slide | blue   | south     | 2014-04-28
        2 | swing | yellow | northwest | 2010-08-16

在这里,你可以看到我们的equip_id已经充满成功和我们其他所有的数据已被正确安排。 如果我们的幻灯片断开,我们将其从操场中删除,我们还可以通过键入以下内容从表中删除该行:

DELETE FROM playground WHERE type = 'slide';

如果我们再次查询我们的表:

SELECT * FROM playground;

我们将看到我们的幻灯片不再是表的一部分:

 equip_id | type  | color | location | install_date 
----------+-------+-------+----------+--------------
        1 | slide | blue  | south    | 2014-04-28

有用的命令

以下是几个可以帮助您了解当前环境的命令:

  • \:获取PSQL命令,包括那些未在此处列出的完整列表。

  • \ H:获取有关SQL命令的帮助。 您可以使用特定的命令来获取语法的帮助。

  • \ Q:退出psql程序并退出到Linux提示。

  • \ D:可用表,视图和序列在当前数据库列表。

  • \杜 :列出可用角色

  • \ DP:列表访问权限

  • \ DT:名单表

  • \ l:列出数据库

  • \ C:连接到不同的数据库。 根据数据库名称。

  • \密码 :为后面的用户名更改密码。

  • \ conninfo:获取有关当前数据库和连接信息。

使用这些命令,您应该能够在任何时间导航PostgreSQL数据库,表和角色。

结论

您现在应该有一个功能完整的PostgreSQL数据库,并在您的Debian系统上运行。 恭喜! 有大量的文档从这里去:

  • PostgreSQL手册

  • 安装包postgresql-docsudo apt-get install postgresql-doc

  • README安装在文件/usr/share/doc/postgresql-doc-9.4/tutorial/README

有关PostgreSQL中支持的SQL命令的完整列表,请按照以下链接:

要比较数据库的不同功能,您可以检查:

为了更好地了解角色和权限,请参阅:

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏