篮之新喜 发表于 2024-7-28 16:35:07

如何在 Debian 8 上安装和利用 PostgreSQL 9.4

前些天发现了一个巨牛的人工智能学习网站,普通易懂,风趣幽默,忍不住分享一下给各人。点击跳转到网站。
简介

关系型数据库是满意多种需求的数据构造的基石。它们支持从在线购物到火箭发射等各种应用。PostgreSQL 是一种历史久长但仍旧活跃的数据库,它遵循大部分 SQL 标准,支持 ACID 事务,支持外键和视图,而且仍在积极开发中。
假如你运行的应用程序需要稳定性、软件包质量和简朴的管理,Debian 8(代号“Jessie”)是 Linux 发行版中最佳的选择之一。它的更新速度比其他“发行版”慢一些,但其稳定性和质量得到了广泛认可。假如你的应用程序或服务需要数据库,Debian 8 和 PostgreSQL 的组合是最佳选择之一。
本文将向您展示如何在新的 Debian 8 Stable 实例上安装 PostgreSQL 并开始利用。
先决条件

首先要做的是启动 Debian 8 Stable 体系。你可以按照《利用 Debian 8 举行初始服务器设置》中的阐明举行操作。本教程假设你已经准备好了一个 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   10 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 321640 21:58 ?      00:00:00 postgres: checkpointer process
postgres 32167 321640 21:58 ?      00:00:00 postgres: writer process
postgres 32168 321640 21:58 ?      00:00:00 postgres: wal writer process
postgres 32169 321640 21:58 ?      00:00:00 postgres: autovacuum launcher process
postgres 32170 321640 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

假设您有一个名为 test1 的 Linux 帐户,创建了一个 PostgreSQL test1 角色与之匹配,并创建了数据库 test1。要在 Linux 中切换用户帐户为 test1:
su - test1
然后,利用以下命令以 test1 PostgreSQL 角色毗连到 test1 数据库:
psql

如今,您应该看到新创建的用户 test1 而不是 postgres 的 PostgreSQL 提示符。
创建和删除表

如今您知道如何毗连到 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)
);
如您所见,我们为表指定了一个名称,然后界说了我们想要的列,以及列范例和字段数据的最大长度。我们还可以为每个列可选地添加表约束。
您可以在《如何在云服务器上创建、删除和管理 PostgreSQL 表》文章中了解有关如何在 Postgres 中创建和管理表的更多信息。
对于我们的目标,我们将创建一个雷同于以下内容的简朴表:
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,它是序列范例的。此数据范例是自增整数。我们已经给了这个列主键的约束,这意味着值必须是唯一的且不为空。
对于我们的两个列,我们没有给出字段长度。这是由于某些列范例不需要设置长度,由于长度由范例隐含确定。
然后,我们为设备范例和颜色创建列,每个列都不能为空。然后我们创建一个位置列,并创建一个要求值为八个大概值之一的约束。最后一列是一个记录我们安装设备日期的日期列。
要检察表,请在 psql

提示符上利用命令 \dt。结果雷同于
             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: 列出当前数据库中可用的表、视图和序列。
[*] \du: 列出可用角色。
[*] \dp: 列出访问权限。
[*] \dt: 列出表格。
[*] \l: 列出数据库。
[*] \c: 毗连到不同的数据库。在其后跟上数据库名称。
[*] \password: 更改接下来的用户名的暗码。
[*] \conninfo: 获取有关当前数据库和毗连的信息。
有了这些命令,您应该可以或许在短时间内欣赏 PostgreSQL 数据库、表格和角色。
结论

您如今应该在 Debian 体系上拥有一个完全功能的 PostgreSQL 数据库。恭喜!这里有大量的文档可供参考:


[*] PostgreSQL 手册
[*] 安装包 postgresql-doc:sudo apt-get install postgresql-doc
[*] 安装在 /usr/share/doc/postgresql-doc-9.4/tutorial/README 的 README 文件
要获取 PostgreSQL 中支持的所有 SQL 命令的完备列表,请访问以下链接:


[*]SQL 命令
要比较不同数据库的功能,请检察:


[*]SQLite vs MySQL vs PostgreSQL
要更好地理解角色和权限,请参阅:


[*]如何在 VPS 上利用角色和管理授予权限的 PostgreSQL

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 如何在 Debian 8 上安装和利用 PostgreSQL 9.4