在Ubuntu 14.04上安装和使用PostgreSQL的方法

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 在Ubuntu 14.04上安装和使用PostgreSQL的方法

介绍

关系数据库管理系统是许多网站和应用程序的关键组件。它们提供了一种结构化的方式来存储、组织和访问信息。

PostgreSQL,或者简称为 Postgres,是一种关系数据库管理系统,提供了对 SQL 查询语言的实现。它是许多小型和大型项目的热门选择,并且具有符合标准和许多高级功能的优势,如可靠的事务和并发性而无需读取锁定。

在本指南中,我们将演示如何在 Ubuntu 14.04 VPS 实例上安装 Postgres,并介绍一些基本的使用方法。

安装

Ubuntu 的默认软件仓库包含了 Postgres 软件包,因此我们可以使用 apt 软件包管理系统轻松安装它们。

由于我们最近没有更新本地的 apt 软件仓库,让我们现在进行更新。然后我们可以获取 Postgres 软件包和一个“contrib”软件包,它添加了一些额外的实用工具和功能:

sudo apt-get update
sudo apt-get install postgresql postgresql-contrib

现在我们的软件已安装完成,我们可以了解它的工作原理以及它与您可能使用过的类似数据库管理系统有何不同。

使用 PostgreSQL 角色和数据库

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

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

安装过程创建了一个名为 postgres 的用户帐户,该帐户与默认的 Postgres 角色关联。为了使用 Postgres,我们需要登录到该帐户。您可以通过输入以下命令来执行:

sudo -i -u postgres

系统会要求您输入正常用户密码,然后会为 postgres 用户给出一个 shell 提示符。

您可以立即获取一个 Postgres 提示符,方法是输入:

psql

您将自动登录,并可以立即与数据库管理系统交互。

但是,我们将解释一下如何使用其他角色和数据库,以便您可以灵活选择要使用的用户和数据库。

通过输入以下命令退出 PostgreSQL 提示符:

\q

现在您应该回到 postgres Linux 命令提示符。

创建新角色

postgres Linux 帐户,您有能力登录到数据库系统。但是,我们还将演示如何创建其他角色。与 Postgres 管理角色相关联的 postgres Linux 帐户可以访问一些实用程序来创建用户和数据库。

您可以通过输入以下命令来创建新角色:

createuser --interactive

这基本上是一个交互式的 shell 脚本,调用正确的 Postgres 命令来根据您的规格创建用户。它只会问您两个问题:角色的名称以及是否应该是超级用户。通过查看 man 页面,您可以通过传递一些额外的标志来获得更多控制:

man createuser

创建新数据库

Postgres 默认设置的方式(通过匹配系统帐户请求的认证角色)还假设将存在一个匹配的数据库供角色连接。

因此,如果我有一个名为 test1 的用户,该角色将默认尝试连接到名为 test1 的数据库。

您可以通过以下命令作为 postgres 用户创建适当的数据库:

createdb test1

使用新用户连接到 Postgres

假设您有一个名为 test1 的 Linux 系统帐户(您可以通过输入 adduser test1 来创建一个),并且您还创建了一个名为 test1 的 Postgres 角色和数据库。

您可以通过输入以下命令切换到 Linux 系统帐户:

sudo -i -u test1

然后,您可以通过输入以下命令作为 test1 Postgres 角色连接到 test1 数据库:

psql

假设所有组件都已配置好,这将自动登录。

如果您希望您的用户连接到不同的数据库,可以通过以下方式指定数据库:

psql -d postgres

通过输入以下命令,您可以获取有关您当前登录的 Postgres 用户和当前连接的数据库的信息:

\conninfo

这可以帮助您在连接到非默认数据库或使用非默认用户时提醒您当前的设置。

创建和删除表格

现在您已经知道如何连接到 PostgreSQL 数据库系统,我们将开始介绍如何完成一些基本任务。

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

这个命令的基本语法如下:

CREATE TABLE <span class="highlight">table_name</span> (
    <span class="highlight">column_name1</span> <span class="highlight">col_type</span> (<span class="highlight">field_length</span>) <span class="highlight">column_constraints</span>,
    <span class="highlight">column_name2</span> <span class="highlight">col_type</span> (<span class="highlight">field_length</span>),
    <span class="highlight">column_name3</span> <span class="highlight">col_type</span> (<span class="highlight">field_length</span>)
);

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

您可以在此处了解有关如何在 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 开始,它是 serial 类型。这种数据类型是自增的整数。我们给这个列添加了 primary key 约束,这意味着值必须是唯一的且不为空。

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

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

我们可以通过输入以下命令来查看我们的新表格:

\d

您会看到,我们有我们的游乐场表,但我们还有一个名为 playground_equip_id_seq 的东西,它是 sequence 类型。这是我们给 equip_id 列的 “serial” 类型的表示。这跟踪了序列中的下一个数字。

如果您只想看到表格,可以输入:

\dt

向表格中添加、查询和删除数据

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

让我们添加一个滑梯和一个秋千。我们通过调用我们想要添加的表格,命名列,然后为每个列提供数据来完成这个操作。我们可以像这样添加我们的滑梯和秋千:

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 已经成功填充,而且我们的其他所有数据都已经正确组织。

如果我们的滑梯坏了并且我们将其从游乐场中移除,我们也可以通过输入以下命令从我们的表格中删除该行:

DELETE FROM playground WHERE type = 'slide';

如果我们再次查询我们的表格,我们将看到我们的滑梯不再是表格的一部分:

SELECT * FROM playground;

如何向表中添加和删除列

如果我们想在创建表后修改它以添加额外的列,我们可以很容易地实现这一点。

我们可以通过输入以下命令来添加一个列,以显示每个设备的最后一次维护访问:

ALTER TABLE playground ADD last_maint date;

如果再次查看表信息,你会发现新列已经被添加(但尚未输入数据):

SELECT * FROM playground;
equip_id | type  | color  | location  | install_date | last_maint 
----------+-------+--------+-----------+--------------+------------
        2 | swing | yellow | northwest | 2010-08-16   | 
(1 row)

我们同样可以轻松地删除一列。如果我们发现我们的工作人员使用单独的工具来跟踪维护历史,我们可以通过输入以下命令在这里删除该列:

ALTER TABLE playground DROP last_maint;

如何在表中更新数据

我们知道如何向表中添加记录和删除它们,但我们还没有涉及如何修改现有条目。

你可以通过查询你想要的记录并将列设置为你希望使用的值来更新现有条目的值。我们可以查询“swing”记录(这将匹配表中的每个秋千),并将其颜色更改为“红色”。如果我们给它喷了一层油漆,这可能会很有用:

UPDATE playground SET color = 'red' WHERE type = 'swing';

我们可以通过再次查询我们的数据来验证操作是否成功:

SELECT * FROM playground;
equip_id | type  | color | location  | install_date 
----------+-------+-------+-----------+--------------
        2 | swing | red   | northwest | 2010-08-16
(1 row)

如你所见,我们的秋千现在被注册为红色。

结论

你现在已经在你的 Ubuntu 14.04 服务器上设置了 PostgreSQL。然而,还有更多关于 Postgres 的知识需要学习。以下是一些涵盖如何使用 Postgres 的更多指南:

  • 关系数据库管理系统的比较
  • 学习如何创建和管理 Postgres 表
  • 更好地管理角色和权限
  • 使用 Select 在 Postgres 中编写查询
  • 安装 phpPgAdmin 以通过 Web 界面管理数据库
  • 学习如何保护 PostgreSQL
  • 设置主从复制与 Postgres
  • 学习如何备份 Postgres 数据库


相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
10天前
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(五):18.04安装多版本CUDA
这篇博客文章介绍了在Ubuntu 18.04系统上如何安装和切换不同版本的CUDA,以及如何安装不同版本的cuDNN。
57 2
|
10天前
|
并行计算 PyTorch TensorFlow
Ubuntu安装笔记(一):安装显卡驱动、cuda/cudnn、Anaconda、Pytorch、Tensorflow、Opencv、Visdom、FFMPEG、卸载一些不必要的预装软件
这篇文章是关于如何在Ubuntu操作系统上安装显卡驱动、CUDA、CUDNN、Anaconda、PyTorch、TensorFlow、OpenCV、FFMPEG以及卸载不必要的预装软件的详细指南。
765 3
|
4天前
|
Ubuntu Linux 测试技术
Linux系统之Ubuntu安装cockpit管理工具
【10月更文挑战第13天】Linux系统之Ubuntu安装cockpit管理工具
25 4
Linux系统之Ubuntu安装cockpit管理工具
|
9天前
|
Ubuntu 应用服务中间件 nginx
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
本文是关于Ubuntu系统中使用ffmpeg 3.2.16源码编译OpenCV 3.4.0的安装笔记,包括安装ffmpeg、编译OpenCV、卸载OpenCV以及常见报错处理。
42 2
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
|
9天前
|
Ubuntu Linux C语言
Ubuntu安装笔记(二):ubuntu18.04编译安装opencv 3.4.0 opencv_contrib3.4.0
本文介绍了在Ubuntu 18.04系统上编译安装OpenCV 3.4.0及其扩展包opencv_contrib 3.4.0的详细步骤,包括下载源码、安装依赖、配置CMake和编译安装,以及常见问题的解决方法。
14 1
Ubuntu安装笔记(二):ubuntu18.04编译安装opencv 3.4.0 opencv_contrib3.4.0
|
10天前
|
Ubuntu 虚拟化
软件安装(二):VMware ubuntu20.04 安装步骤
这篇文章是关于如何在VMware Workstation 16 Player上安装Ubuntu 20.04桌面版的详细步骤指南。
74 2
软件安装(二):VMware ubuntu20.04 安装步骤
|
11天前
|
PyTorch TensorFlow 算法框架/工具
Jetson环境安装(一):Ubuntu18.04安装pytorch、opencv、onnx、tensorflow、setuptools、pycuda....
本文提供了在Ubuntu 18.04操作系统的NVIDIA Jetson平台上安装深度学习和计算机视觉相关库的详细步骤,包括PyTorch、OpenCV、ONNX、TensorFlow等。
23 1
Jetson环境安装(一):Ubuntu18.04安装pytorch、opencv、onnx、tensorflow、setuptools、pycuda....
|
13天前
|
消息中间件 监控 Ubuntu
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
46 3
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
|
5天前
|
Kubernetes Ubuntu Docker
从0开始搞K8S:使用Ubuntu进行安装(环境安装)
通过上述步骤,你已经在Ubuntu上成功搭建了一个基本的Kubernetes单节点集群。这只是开始,Kubernetes的世界广阔且深邃,接下来你可以尝试部署应用、了解Kubernetes的高级概念如Services、Deployments、Ingress等,以及探索如何利用Helm等工具进行应用管理,逐步提升你的Kubernetes技能树。记住,实践是最好的老师,不断实验与学习,你将逐渐掌握这一强大的容器编排技术。
17 1
|
9天前
|
Ubuntu Linux
软件安装(五):Ubuntu 18.04安装Teamviewer 看一遍就会
这篇文章介绍了在Ubuntu 18.04系统上通过图形界面和命令行两种方法安装TeamViewer远程控制软件的步骤。
16 2