域名 AXUM.RS 将于 2025 年 10 月到期。我们无意再对其进行续费,如果你有意接续这个域名,请与我们取得联系。
  • AXUM.RS 现仅需人民币 3000 元(大写:叁仟元整。接受适度议价
  • 按照行业规则,AXUM.RS 到期后,大概率会进入长时间的赎回期,该期间内,如果你想拥有该域名,将要付出高额的费用
  • 我们已启用 AXUM.EU.ORG 域名,并将持续运营
  • 仅接受微信或支付宝交易
如果你对 AXUM.RS 有兴趣,请和我们进行联系:

安装 PostgreSQL

PostgreSQL 是一个功能强大的开源对象关系数据库系统。它经过数十年的积极开发和经过验证的架构,使其在可靠性、数据完整性和正确性方面赢得了良好的声誉。而其天生支持异步操作的特性,在高并发场景中倍受欢迎。同时,它的扩展性极强,只要你有能力,你可以使用任何你熟悉的其它开发语言来编写 PostgreSQL 脚本,比如:Rust、Python 等。

安装

docker 安装无疑是最简单、最方便的安装方式:

docker run --name axum_rs_postgres -e POSTGRES_PASSWORD=axum_rs -p 5432:5432 -d postgres
  • --name :取个名字吧,别到时候自己都不知道这是什么
  • -e POSTGRES_PASSWORD=axum_rs:设置环境变量 POSTGRES_PASSWORD,它将是超级管理员的密码(PostgreSQL的超级管理员的用户名是 postgres
  • -p 5432:5432:端口映射。PostgreSQL 默认端口是 5432

对于本地开发来说,上述 docker 命令已经足矣。但是,如你所知,站长是个负责任的站长,往往会告诉你如何尽可能的“压榨”各工具,让其能尽可能地以最优的状态来服务:

docker run \
        --name axum_rs_postgres \
        -e POSTGRES_PASSWORD=axum_rs \
        -e POSTGRES_USER=axum_rs \
        -e POSTGRES_DB=axum_rs \
        -e TZ=PRC \
        --restart=always \
        -e PGDATA=/var/lib/postgresql/data/pgdata \
        -v /var/docker/axum_rs_postgres:/var/lib/postgresql/data \
        -p 127.0.0.1:5432:5432 \
        -d postgres:alpine

多了几个选项,我们来看一下:

连接

直接使用 docker

你可以使用 docker 来连接:

docker exec -it axum_rs_postgres psql -U axum_rs
  • docker exec:docker 提供的命令,用于执行容器内部的命令
  • -it:开启交互式终端
  • axum_rs_postgres:容器实例的名字
  • psql:PostgreSQL 的命令行工具
  • -U axum_rs:指定 执行psql 的用户名
  • 如未指定 -U axum_rs,将使用默认用户名。PostgreSQL 的用户有两种
    • 一是和 Linux 当前用户名相同的用户,docker 中默认用户名是 root
    • PostgreSQL 的超级管理员的用户名是 postgres,有些 Linux 发行版会将 Linux 的 root 用户和 PostgreSQL 的 postgres 进行映射;有些则不会
    • 另一种是通过 SQL 语句创建的用户,我们将在后续章节进行讲解。本例中的 axum_rs 正是通过 SQL 语句创建——我们在 docker run 时,通过 POSTGRES_USER 指定的,这是自动创建的,不需要手动创建
  • 我们相当于在本地运行 psql,所以大部分情况下,不需要输入密码
    • 这不是 PostgreSQL 的默认特性,而是 docker 镜像帮我们做的
    • 有关用户和角色,我们将在后续章节介绍
  • 一是和 Linux 当前用户名相同的用户,docker 中默认用户名是 root
  • PostgreSQL 的超级管理员的用户名是 postgres,有些 Linux 发行版会将 Linux 的 root 用户和 PostgreSQL 的 postgres 进行映射;有些则不会
  • 另一种是通过 SQL 语句创建的用户,我们将在后续章节进行讲解。本例中的 axum_rs 正是通过 SQL 语句创建——我们在 docker run 时,通过 POSTGRES_USER 指定的,这是自动创建的,不需要手动创建
  • 这不是 PostgreSQL 的默认特性,而是 docker 镜像帮我们做的
  • 有关用户和角色,我们将在后续章节介绍

运行 \d 可以查看当前数据库的对象:

axum_rs=# \d
Did not find any relations.

如果你看到类似上面的输出,说明你的 docker PostgreSQL 已经成功运行。此时,你可以输入 \q 退出。

如果你是使用简单的 docker run --name axum_rs_postgres -e POSTGRES_PASSWORD=axum_rs -p 5432:5432 -d postgres 来创建容器实例,那么,你应该使用如下命令进行连接:

docker exec -it axum_rs_postgres psql -U postgres

嗯,就这么简单。

你甚至可以:

docker exec -it axum_rs_postgres psql

正如上文所说,如果没有指定 -U 用户名,psql 将使用默认的用户,即超级管理员 postgres。这取决于 docker 镜像是否将 postgres 和 Linux 的 root 作映射。所以,始终带上 -U 用户名 是最佳实践。

如果你是使用简单的 docker run --name axum_rs_postgres -e POSTGRES_PASSWORD=axum_rs -p 5432:5432 -d postgres 来创建容器实例,那么,你应该使用如下命令进行连接:

docker exec -it axum_rs_postgres psql -U postgres

嗯,就这么简单。

你甚至可以:

docker exec -it axum_rs_postgres psql

正如上文所说,如果没有指定 -U 用户名,psql 将使用默认的用户,即超级管理员 postgres。这取决于 docker 镜像是否将 postgres 和 Linux 的 root 作映射。所以,始终带上 -U 用户名 是最佳实践。

使用 GUI 工具连接

这边推荐DBeaver Community,它是一个跨平台(基于Java)的、支持多种数据库的 GUI 工具。

其它安装方式

在线免费实例

你可以使用 DBeaver 来连接 ElephantSQL 的免费实例

二进制安装

  • 官网提供了各平台的二进制安装包,这应该是最“正规”的安装方式。
  • 各 Linux 发行版同样提供了基于各自包管理机制的安装,比如 debian/ubuntu 的 apt:apt install postgresql
要查看完整内容,请先登录