Skip to content

postgresql

进入 PostgreSQL 容器的命令行

bash
# 方式1:直接进入容器并登录postgres(推荐)
docker exec -it <postgres-container-name/id> psql -U postgres

# 方式2:先进入容器终端,再登录(适合新手理解)
docker exec -it <postgres-container-name/id> bash
# 进入容器后,再执行登录命令
psql -U postgres

查询部署的数据库

sql
-- 方法1:最简单的查询(显示数据库名称、所有者、编码等)
\l

-- 方法2:通过系统视图查询(更灵活,可筛选)
SELECT datname FROM pg_database WHERE datistemplate = false;
  • \l 是 PostgreSQL 内置的元命令,会列出所有数据库的详细信息(名称、所有者、字符集、权限等);
  • pg_database 是系统表,存储所有数据库信息,datistemplate = false 可过滤掉系统模板库(只显示用户创建的库)。

查询数据库账号(用户 / 角色)

sql
-- 方法1:内置元命令(显示所有角色、权限、属性)
\du

-- 方法2:通过系统视图查询(可自定义字段)
SELECT 
  rolname AS "用户名",
  rolsuper AS "是否超级管理员",
  rolcanlogin AS "是否允许登录",
  rolcreatedb AS "是否允许创建数据库"
FROM pg_roles;
  • \du 会列出所有角色的核心信息(名称、所属组、权限);

  • pg_roles 是系统表,存储所有角色信息,可通过字段筛选(比如只查允许登录的账号:WHERE rolcanlogin = true)。

数据库版本

sql
-- 方法1:显示完整版本信息(含操作系统、编译信息)
SELECT version();

-- 方法2:仅显示简洁版本号(推荐,易读)
SHOW server_version;

-- 方法3:显示版本号(含小版本,如 16.2.1)
SHOW server_version_num;

创建用户和数据库

sql
-- 1. 创建用户(设置密码,替换为你的用户名/密码)
CREATE USER n8n WITH PASSWORD 'n8npassword';

-- 2. 创建数据库(指定所有者为刚创建的用户)
CREATE DATABASE n8ndb OWNER n8n;

-- 3. 可选:赋予用户在该数据库的全部权限(兜底,确保权限完整)
GRANT ALL PRIVILEGES ON DATABASE n8ndb TO n8n;

-- 验证:查看用户和数据库关联关系
\l  -- 查看数据库列表,确认 mydb 的所有者是 myuser
\du -- 查看用户列表,确认 myuser 存在

上次更新时间:

最近更新