如何在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的步骤。根据你的具体需求,你可能还需要进行更多的配置和优化。

相关推荐
扛枪的书生19 分钟前
Linux 网络管理器用法速查
linux
顺风尿一寸3 小时前
Java Socket 内核之旅:从 SocketChannel.read() 到 tcp_recvmsg 与 epoll 的完整调用链路
linux
XIAOHEZIcode9 小时前
Ubuntu 终端美化全栈指南:Bash 到 Kitty 踩坑实录
linux·ubuntu·命令行
唐青枫11 小时前
别再只会用 cron:Linux systemd Timer 定时任务实战详解
linux
AlfredZhao2 天前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
戴为沐3 天前
Linux内存扩容指南
linux
zylyehuo4 天前
Linux 彻底且安全地删除文件
linux
用户805533698034 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297914 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
Web3探索者6 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh