前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Debian 8上安装和使用PostgreSQL 9.4

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

原创
作者头像
宇cccc
修改2018-09-30 10:38:40
4.3K0
修改2018-09-30 10:38:40
举报
文章被收录于专栏:云计算教程系列

介绍

关系数据库是满足多种需求的数据组织的基石。它们支持从网上购物到火箭发射的各种功能。PostgreSQL是一个既古老但仍然存在的数据库。PostgreSQL遵循大部分SQL标准,具有ACID事务,支持外键和视图,并且仍在积极开发中。

如果您运行的应用程序需要稳定性,打包质量和易于管理,Debian 8(代号“Jessie”)是Linux发行版的最佳候选者之一。它的移动速度比其他“发行版”慢一点,但它的稳定性和质量得到了很好的认可。如果您的应用程序或服务需要数据库,Debian 8和PostgreSQL的组合是城里最好的组合之一。

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

准备

第一件事是让Debian 8 Stable系统继续运行。本教程假设您准备好了Debian 8 Stable 腾讯云CVM

除非另有说明,否则本教程中的所有命令都应作为具有sudo权限的非root用户运行。

没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器

安装PostgreSQL

在安装PostgreSQL之前,请确保通过更新apt包列表来获取Debian存储库中的最新信息:

代码语言:javascript
复制
sudo apt-get update

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

代码语言:javascript
复制
Reading package lists... Done.

有几个包以postgresql开头:

要直接安装postgresql-9.4包:

代码语言:javascript
复制
sudo apt-get install postgresql-9.4 postgresql-client-9.4

当被询问时,键入Y以安装软件包。如果一切顺利,现在可以从存储库下载并安装软件包。

检查安装

要检查PostgreSQL服务器是否已正确安装并且正在运行,您可以使用ps命令:

代码语言:javascript
复制
# ps -ef | grep postgre

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

代码语言:javascript
复制
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。要连接到数据库,首先需要在以root身份登录时通过发出以下命令切换到用户postgres(这不适用于sudo访问):

代码语言:javascript
复制
su - postgres

你现在应该已经作为postgres登录。要启动PostgreSQL控制台,请键入psql

代码语言:javascript
复制
psql

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

代码语言:javascript
复制
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控制台内部:

代码语言:javascript
复制
createuser --interactive

这基本上是一个交互式shell脚本,它调用正确的PostgreSQL命令来根据您的规范创建用户。它会问你一些问题:角色的名称,是否应该是超级用户,角色是否应该能够创建新数据库,以及角色是否能够创建新角色。man页面包含更多信息:

代码语言:javascript
复制
man createuser

创建新数据库

PostgreSQL默认设置为匹配系统帐户请求的身份验证角色。它还假设存在匹配数据库以供角色连接。因此,如果我有一个被调用的用户test1,该角色将尝试连接到默认调用的数据库test1

您只需以postgres用户身份调用此命令即可创建相应的数据库:

代码语言:javascript
复制
createdb test1

现在创建了新数据库test1

使用新用户连接到PostgreSQL

假设您有一个名为test1的Linux的帐户,创建了一个匹配它的PostgreSQL 角色test1,并创建了数据库test1。要将Linux中的用户帐户更改为test1

代码语言:javascript
复制
su - test1

然后,使用以下命令以PostgreSQL角色test1连接到数据库test1

代码语言:javascript
复制
psql

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

创建和删除表

既然您已经知道如何连接到PostgreSQL数据库系统,我们将开始讨论如何完成一些基本任务。

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

此命令的基本语法如下:

代码语言:javascript
复制
CREATE TABLE table_name (
    column_name1 col_type (field_length) column_constraints,
    column_name2 col_type (field_length),
    column_name3 col_type (field_length)
);

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

出于我们的目的,我们将创建一个这样的简单表:

代码语言:javascript
复制
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
);

我们制作了一个playground table,可以用于清点我们拥有的设备。这从设备ID开始,该ID是串行类型。此数据类型是自动递增整数。我们已经为此列提供了主键的约束,这意味着值必须是唯一的而不为空。

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

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

要查看表,请在psql提示符下使用命令\dt。结果将类似于

代码语言:javascript
复制
             List of relations
 Schema |    Name    | Type  |  Owner 
--------+------------+-------+----------
 public | playground | table | postgres

如您所见,我们有playground table了。

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

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

让我们添加一张幻灯片和一个swing。我们通过调用我们想要添加的表,命名列然后为每列提供数据来完成此操作。我们的幻灯片和swing可以添加如下:

代码语言:javascript
复制
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列的值。这是因为只要创建表中的新行,就会自动生成此项。

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

代码语言:javascript
复制
SELECT * FROM playground;

输出应该是

代码语言:javascript
复制
 equip_id | type  | color  | location  | install_date 
----------+-------+--------+-----------+--------------
        1 | slide | blue   | south     | 2014-04-28
        2 | swing | yellow | northwest | 2010-08-16

在这里,您可以看到我们已成功填写equip_id,并且所有其他数据都已正确组织。如果我们的幻灯片断开,我们将它从操场上移除,我们也可以通过键入以下内容从表中删除行:

代码语言:javascript
复制
DELETE FROM playground WHERE type = 'slide';

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

代码语言:javascript
复制
SELECT * FROM playground;

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

代码语言:javascript
复制
 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
  • README 文件安装在 /usr/share/doc/postgresql-doc-9.4/tutorial/README

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

想要了解更多关于安装和使用PostgreSQL 9.4的相关教程,请前往腾讯云+社区学习更多知识。


参考文献:《How To Install and Use PostgreSQL 9.4 on Debian 8》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 准备
  • 安装PostgreSQL
  • 检查安装
  • 访问PostgreSQL数据库
  • 创造新角色
  • 创建新数据库
  • 使用新用户连接到PostgreSQL
  • 创建和删除表
  • 添加,查询和删除表中的数据
  • 有用的命令
  • 结论
相关产品与服务
云数据库 PostgreSQL
腾讯云数据库 PostgreSQL(TencentDB for PostgreSQL,云 API 使用 postgres 作为简称)能够让您在云端轻松设置、操作和扩展目前功能最强大的开源数据库 PostgreSQL。腾讯云将负责绝大部分处理复杂而耗时的管理工作,如 PostgreSQL 软件安装、存储管理、高可用复制、以及为灾难恢复而进行的数据备份,让您更专注于业务程序开发。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档