如何在 Ubuntu 上安装、配置和使用最新的 PostgreSQL 版本
在此页
- PostgreSQL 安装:
- 选择您的 Ubuntu 版本
- 检查 PostgreSQL 服务的状态
Postgres 是一个开源关系数据库。它具有许多高级特性,如企业级性能、触发器、原子性、一致性、隔离性、持久性以及许多其他特性,这些特性将使 Postgres 成为许多复杂应用程序的理想选择。
PostgreSQL 安装:
在本教程中,我们从 PostgreSQL 官方网站 https://www.postgresql.org/download/linux/ubuntu/ 下载最新版本的 Postgres
PostgreSQL 也默认在 Ubuntu 存储库中可用。通过使用其官方网站上的 PostgreSQL apt 存储库,我们可以安装我们选择的特定版本。
选择你的 Ubuntu 版本
我的 Ubuntu 版本是 Bionic (18.04)
创建文件 PostgreSQL 存储库。
nano /etc/apt/sources.list.d/pgdg.list
并在 pgdg.list 中为存储库添加一行
deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main
如果您使用与 18.04 (Bionic) 不同的 Ubuntu 版本,则将 bionic 一词替换为所用 Ubuntu 版本的名称。导入存储库签名密钥,并更新包列表
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
现在使用以下命令在我们的 Ubuntu 系统中安装最新的 PostgreSQL 服务器。
sudo apt-get install postgresql postgresql-contrib
安装后 PostgreSQL 服务器将自动启动。
检查 PostgreSQL 服务的状态
systemctl status postgresql
现在验证 PostgreSQL 连接和 PostgreSQL 服务器版本。
sudo -u postgres psql -c "SELECT version();"
这将使用 psql 连接到 PostgreSQL 并提供服务器版本
version
-----------------------------------------------------------------------------------------------------------------------------------
PostgreSQL 11.4 (Ubuntu 11.4-1.pgdg18.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0, 64-bit使用 PostgreSQL 角色和身份验证方法
PostgreSQL 使用角色数据库访问权限的概念。角色可以应用于一个数据库用户或一组数据库用户。
PostgreSQL 支持多种身份验证方法。
以下是PostgreSQL最常用的认证方式。
1.信任
Trust authentication Methods 可以在 pg_hba.conf 中定义,使用这种方法,角色可以在没有密码的情况下连接到数据库。
2.密码
角色可以通过提供密码来连接数据库。
3.标识
Ident Authentication Methods 仅适用于 TCP/IP 连接。
4.同行
对等身份验证方法仅用于本地连接。
pg_hba.conf 文件定义客户端身份验证方法。我们可以通过编辑以下文件来更改身份验证方法。
nano /etc/postgresql/11/main/pg_hba.conf
在此文件中,PostgreSQL 默认使用对等身份验证方法。我们可以通过更改对等方法来更改身份验证方法。
在安装 PostgreSQL 时,会默认创建 postgres 用户,postgres 是 PostgreSQL 数据库的超级用户,类似 MYSQL 数据库服务器的 root 用户。这个 postgres 用户也在 ubuntu 中创建。
连接到 PostgreSQL
以下命令连接 PostgreSQL。
sudo -i -u postgres
现在我们可以通过键入以下命令连接到像 MySQL 这样的 Postgres 提示符。
psql
我们将收到以下提示,我们已准备好对其运行 PostgreSQL 查询。
请注意,我们可以通过简单地键入以下命令直接连接到数据库服务器。
sudo -u postgres psql
在 PostgreSQL 中创建角色和数据库
我们已经在数据库中拥有 postgres 角色,现在我们使用以下命令创建一个新角色。
:/home# sudo -u postgres createuser --interactive
Enter name of role to add: sohan
Shall the new role be a superuser? (y/n) y我们可以使用以下命令列出现有的用户角色。
postgres=# \du
或者在 postgres 提示符下运行以下命令。
SELECT rolname FROM pg_roles;
我们可以使用 DROP ROLE 命令删除任何现有的用户角色。
postgres=# DROP ROLE sohan;
DROP ROLE创建 PostgreSQL 数据库
这里我们可以使用postgres账号登录,运行如下命令。
:~$ createdb dummu
或者我们可以简单地使用普通 ubuntu 用户运行以下命令。
sudo -u postgres createdb dummu
使用新角色登录到 postgres 提示符
直接从您的系统终端运行以创建新用户。
sudo adduser sohan
在系统中创建新用户后,只需运行
sudo -u sohan psql
或键入以下命令
sudo -i -u sohan
psql我们可以通过简单地提供数据库名称来连接到不同的数据库
psql -d dummu
连接到上述数据库后,我们可以通过一个简单的命令获取该数据库信息
dummu=> \conninfo
output
You are connected to database "dummu" as user "sohan" via socket in "/var/run/postgresql" at port "5432"UPDATE dummu SET password = 'postgres' where username = 'sohan';在 PostgreSQL 中创建表
创建角色、数据库并创建与数据库服务器的连接后,现在我们将创建一个表。
CREATE TABLE dummu(user_id serial PRIMARY KEY,username VARCHAR (50) UNIQUE NOT NULL, password VARCHAR (50) NOT NULL, email VARCHAR (355) UNIQUE NOT NULL, created_on TIMESTAMP NOT NULL, last_login TIMESTAMP);
上面的命令将像 MySQL 一样创建新的虚拟表,我们可以通过键入来检查这个新表
\d
在这里,我们还将看到 dummu_user_id_seq 表,它将跟踪序列中的下一个数字。
如果我们只想显示没有序列的表名,请运行以下命令。
\dt
这只会显示 dummu 表
sohan=> \dt
Output
List of relations
Schema | Na | Type | Owner
--------+------------+-------+-------
public | dummu | table | soha向表中添加数据
现在我们将通过键入将数据添加到 dummu 表中,
Insert into dummu(user_id,username,password,email,created_on,last_login) values (1,'sohan','123456','gmail.com','2019-06-24 11:11:11','2019-06-24 11:11:11');
现在我们将从 dummu 表中获取数据,
SELECT * FROM dummu;
从表中删除列
现在让我们从此表中删除数据
DELETE FROM dummu WHERE email = '';
改变 PostgreSQL 表
类似的方式,我们可以使用 alter query as 修改表
ALTER TABLE dummu DROP email;
这将从 dummu 表中删除电子邮件字段。
验证它
SELECT * FROM dummu;
output:-
user_id | username | password | created_on | last_login
---------+----------+----------+---------------------+---------------------
1 | sohan | 123456 | 2019-06-24 11:11:11 | 2019-06-24 11:11:11更新表中的数据
现在我们将看到如何将数据更新到表中
运行以下命令将密码更新到 dummu 表中
UPDATE dummu SET password = 'postgres' where username = 'sohan';
只需键入即可验证更改
SELECT * FROM dummu;
output
user_id | username | password | created_on | last_login
---------+----------+----------+---------------------+---------------------
1 | sohan | postgres | 2019-06-24 11:11:11 | 2019-06-24 11:11:11简而言之,在本教程中,我们将学习如何安装 PostgreSQL、创建角色和数据库以及基本数据库命令。