如何在Ubuntu 20.04上安装和使用PostgreSQL:一步步指南

如何在Ubuntu 20.04上安装和使用PostgreSQL:一步步指南

在Ubuntu 20.04上安装和使用PostgreSQL数据库包括几个明确的步骤:安装、配置、创建用户和数据库、以及基本的数据库操作。下面,我将详细解释每个步骤,并提供具体的命令行示例。

1. 安装PostgreSQL

首先,更新你的Ubuntu系统的包列表,以确保安装最新版本的软件包。

bash 复制代码
sudo apt update

然后,安装PostgreSQL及其附带的软件包。

bash 复制代码
sudo apt install postgresql postgresql-contrib

此命令将安装PostgreSQL数据库服务器以及一些额外的实用程序和功能扩展。

2. 检查PostgreSQL服务

安装完成后,默认情况下,PostgreSQL服务会自动启动。你可以使用以下命令来检查PostgreSQL服务的状态。

bash 复制代码
sudo systemctl status postgresql.service

这个命令会显示服务是否正在运行。

3. 切换到PostgreSQL用户

PostgreSQL安装完成后,会创建一个名为postgres的系统用户,用于管理数据库。要使用这个用户,需要切换到该用户:

bash 复制代码
sudo -i -u postgres

现在,你应该以postgres用户的身份登录,可以开始执行PostgreSQL命令。

4. 创建一个新的数据库用户和数据库

首先,你可以创建一个新的数据库用户。下面的命令创建一个名为example_user的新用户,并提示设置密码:

bash 复制代码
createuser --interactive --pwprompt

按照提示操作,例如:

  • 输入新角色的名字: example_user
  • 是否让新角色成为一个超级用户?n
  • 是否允许新角色创建数据库?y (如果需要的话)
  • 是否允许新角色创建更多新角色?n
  • 输入密码

接着,创建一个名为example_db的数据库,由example_user拥有:

bash 复制代码
createdb -O example_user example_db

5. 使用psql命令行工具

你可以使用psql命令行工具来管理你的数据库。要连接到你刚才创建的数据库:

bash 复制代码
psql -d example_db -U example_user

6. 创建表并执行一些基本的SQL操作

psql提示符下,你可以开始创建表并执行SQL查询。例如,创建一个简单的表:

sql 复制代码
CREATE TABLE employees (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100),
    position VARCHAR(100),
    salary DECIMAL(10, 2)
);

然后,向表中插入数据:

sql 复制代码
INSERT INTO employees (name, position, salary) VALUES ('Alice', 'Manager', 85000.00);

查询表中的数据:

sql 复制代码
SELECT * FROM employees;

7. 退出psql

执行完你的数据库操作后,可以通过输入\q退出psql

8. 配置远程访问(可选)

如果你需要从其他机器远程访问PostgreSQL数据库,你需要修改postgresql.confpg_hba.conf文件。这些文件通常位于/etc/postgresql/12/main/(版本号可能不同)。

postgresql.conf中,找到listen_addresses行,并将其设置为你的服务器IP或'*'(允许从任何地址连接)。

pg_hba.conf中,添加一行来允许远程连接,例如:

conf 复制代码
host    all             all             0.0.0.0/0               md5

之后,重启PostgreSQL服务以应用更改:

bash 复制代码
sudo systemctl restart postgresql

总结

以上就是在Ubuntu 20.04上安装和基本使用PostgreSQL的步骤。根据你的具体需求,你可能还需要进行更多的配置和优化。

相关推荐
Curtis09801 小时前
RHCE——Ubuntu Linux操作系统
linux·服务器·ubuntu
YRr YRr4 小时前
在Ubuntu 20.04和ROS中使用RViz进行数据可视化:详解Fixed Frame参数的选择与应用
linux·ubuntu·信息可视化
Hansel_Zhang4 小时前
CentOS 7 docker部署jar包
linux·docker·centos
运维&陈同学5 小时前
【Dubbo03】消息队列与微服务之dubbo-admin 二进制与编译安装
linux·运维·服务器·后端·微服务·云原生·架构·dubbo
Lemon_man_5 小时前
算法——反转字符串中的单词(leetcode151)
java·linux·前端
灼华十一5 小时前
消息队列-kafka
linux·docker·golang·kafka
玉石俱焚ing6 小时前
ubuntu无线网络共享到有线
运维·服务器·ubuntu
MineGi6 小时前
0017. shell命令--tac
linux·bash
caz287 小时前
Windows远程桌面连接到Linux
linux·运维·服务器
孤傲小二~阿沐8 小时前
PostgreSQL的学习心得和知识总结(一百六十一)|深入理解PostgreSQL数据库之 pg_get_acl 的使用和实现
数据库·postgresql