如何在 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     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

假设您有一个名为 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 relationsSchema |    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-282 | 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-docsudo apt-get install postgresql-doc

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

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

  • SQL 命令

要比较不同数据库的功能,请查看:

  • SQLite vs MySQL vs PostgreSQL

要更好地理解角色和权限,请参阅:

  • 如何在 VPS 上使用角色和管理授予权限的 PostgreSQL

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/49063.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解PHP中的异常处理与错误日志记录

引言 在PHP开发中,异常处理和错误日志记录是确保应用稳定性和可维护性的重要环节。正确地处理异常和记录错误不仅能帮助开发者快速定位问题,还能提升用户体验。本文将深入探讨PHP中的异常处理机制,并通过代码案例展示如何有效地记录错误日志…

59、mysql存储过程

存储过程 一、存储过程: 1.1、存储过程的概念 概念:完成特定功能的sql语句的集合。把定义好的sql集合在一个特定的sql的函数当中 每次执行调用函数即可。还可以实现传参的调用。 1.2、存储过程的语法: delimiter $$ ##delimiter开始和结…

支持4K高分辨率,PixArt-Sigma最新文生图落地经验

PixArt-Sigma是由华为诺亚方舟实验室、大连理工大学和香港大学的研究人员共同开发的一个先进的文本到图像(Text-to-Image,T2I)生成模型。 PixArt-Sigma是在PixArt-alpha的基础上进一步改进的模型,旨在生成高质量的4K分辨率图像。…

2024牛客暑期多校第四场

A-LCT 带权并查集&#xff0c;维护一下每个点在当前树的深度和以它为根能找到的最深的深度。‘ #include<bits/stdc.h>using namespace std; typedef long long ll; const int N 1e6 100;int fa[N],ans[N],val[N];int find(int x){if(fa[x]x)return x;int tfa[x];fa[x…

Spring系统学习-基于XML的声明式事务

基本概念 在Spring框架中&#xff0c;基于XML的事务管理是一种通过XML配置文件来管理事务的方式。Spring提供了强大的事务管理功能&#xff0c;可以与多种持久化技术&#xff08;如JDBC、Hibernate、JPA等&#xff09;结合使用。以下是如何在Spring中使用基于XML的事务管理的基…

C++初学(3)

面向对象编程&#xff08;OOP&#xff09;的本质是设计并拓展自己的数据类型&#xff0c;设计自己的数据类型就是让类型与数据匹配。内置的C类型分为两组&#xff1a;基本类型和复合类型。这里我们将介绍基本类型的整数和浮点数 3.1、简单变量 3.1.1、变量名 C必须遵循几种简…

场外期权如何报价?名义本金是什么?

今天带你了解场外期权如何报价&#xff1f;名义本金是什么&#xff1f;投资者首先需要挑选自己想要进行期权交易的沪深上市公司股票。选出股票后&#xff0c;需要将股票信息、预期的操作时间&#xff08;如期限&#xff09;、看涨或看跌的选择以及预计的交易金额等信息报给场外…

计算机网络(四)数字签名和CA认证

什么是数字签名和CA认证&#xff1f; 数字签名 数字签名的过程通常涉及以下几个步骤&#xff1a; 信息哈希&#xff1a;首先&#xff0c;发送方使用一个哈希函数&#xff08;如SHA-256&#xff09;对要发送的信息&#xff08;如电子邮件、文件等&#xff09;生成一个固定长度…

全链路追踪 性能监控,GO 应用可观测全面升级

作者&#xff1a;古琦 01 介绍 随着 Kubernetes 和容器化技术的普及&#xff0c;Go 语言不仅在云原生基础组件领域广泛应用&#xff0c;也在各类业务场景中占据了重要地位。如今&#xff0c;越来越多的新兴业务选择 Golang 作为首选编程语言。得益于丰富的 RPC 框架&#xff…

Golang实现Word模板内容填充导出

这里我们使用一个广泛使用且免费处理 .docx 文件的库&#xff0c;github.com/nguyenthenguyen/docx. 安装 github.com/nguyenthenguyen/docx 库 首先&#xff0c;确保你已经安装了 docx 库&#xff1a; go get github.com/nguyenthenguyen/docx使用 docx 库处理 Word 模板 …

调用@WebService接口时,应该将他如何注入到类里

在Java中&#xff0c;使用WebService注解时&#xff0c;我们常常需要通过依赖注入的方式将Web服务客户端注入到我们的类中。这里有几种常见的方法来实现这一点。 ### 方法一&#xff1a;使用WebServiceRef WebServiceRef注解用于注入Web服务的引用。它通常用于在客户端类中声…

探索未来IT趋势:塑造数字时代的五大关键技术

在这个日新月异的数字时代&#xff0c;信息技术&#xff08;IT&#xff09;不仅深刻改变了我们的生活方式&#xff0c;还推动了全球经济的飞速发展。随着新技术的不断涌现&#xff0c;IT领域正以前所未有的速度进化。今天&#xff0c;让我们一同探索那些正在塑造未来数字世界的…

【Ubuntu】Ubuntu 配置镜像源(ARM)

【Ubuntu】Ubuntu 配置镜像源&#xff08;ARM&#xff09; 零、起因 最近在QEMU中安装了个ubuntu-24.04-live-server-arm64&#xff0c;默认是国外的软件源&#xff0c;很慢&#xff0c;故替换到国内。 壹、替换 源地址&#xff08;清华源&#xff09; https://mirror.tun…

ubuntu实践

目录 扩容 本机上ping不通新建立的虚拟机 ssh连接 装sshd ssh客户端版本较低&#xff0c;会报key exchange算法不匹配问题 ubuntun上装docker 将centos7下的安装包改造成适配 ubuntu的包 参考文章 扩容 Hyper-V 管理器安装的ubutun扩容磁盘空间说明_hype-v磁盘扩容-…

复现open-mmlab的mmsegmentation详细细节

复现open-mmlab的mmsegmentation详细细节 1.配置环境2.数据处理3.训练 1.配置环境 stage1&#xff1a;创建python环境 conda create --name openmmlab python3.8 -y conda activate openmmlabstage2&#xff1a;安装pytorch&#xff08;这里我是以torch1.10.0为例&#xff09…

VINS-Fusion 回环检测pose_graph_node

VINS-Fusion回环检测,在节点pose_graph_node中启动。 pose_graph_node总体流程如下: 重点看process线程。 process线程中,将订阅的图像、点云、位姿时间戳对齐,对齐后分别存入image_msg、point_msg、pose_msg。pose_msg为VIO后端优化发布的位姿。 一、创建关键帧keyFram…

mac|安装PostgreSQL

1、官网下载&#xff1a;EDB: Open-Source, Enterprise Postgres Database Management 选择需要的版本&#xff1a; 双击得到的.dmg文件 双击&#xff0c;弹窗选择打开&#xff0c;一路next&#xff0c;然后输入你要设置的密码&#xff0c;默认账号名字为&#xff1a;postgres…

睿抗2024省赛----RC-u4 章鱼图的判断

题目 对于无向图 G(V,E)&#xff0c;我们将有且只有一个环的、大于 2 个顶点的无向连通图称之为章鱼图&#xff0c;因为其形状像是一个环&#xff08;身体&#xff09;带着若干个树&#xff08;触手&#xff09;&#xff0c;故得名。 给定一个无向图&#xff0c;请你判断是不…

项目一缓存商品

文章目录 概要整体架构流程技术细节小结 概要 因为商品是经常被浏览的,所以数据库的访问量就问大大增加,造成负载过大影响性能,所以我们需要把商品缓存到redis当中,因为redis是存在内存中的,所以效率会比MySQL的快. 整体架构流程 技术细节 我们在缓存时需要保持数据的一致性所…

面试场景题系列--(2)短 URL 生成器设计:百亿短 URL 怎样做到无冲突?--xunznux

文章目录 面试场景题&#xff1a;短 URL 生成器设计&#xff1a;百亿短 URL 怎样做到无冲突&#xff1f;1. 需求分析2. 短链接生成算法2.1 自增法2.2 散列函数法2.3 预生成法 3. 部署模型3.1 其他部署方案 4. 设计4.1 重定向响应码4.2 短 URL 预生成文件及预加载4.3 用户自定义…