一些 PostgreSQL 常用命令 ,分为 服务管理、数据库操作、用户管理、SQL 查询、连接测试等类别 ,适用于本地开发和服务器运维。
🧰 一、PostgreSQL 服务管理命令(Windows / Linux)
✅ Windows 上使用 pg_ctl
启动/停止 PostgreSQL
# 启动服务
pg_ctl -D "D:\environment\PostgreSQL\15\data" start
# 停止服务
pg_ctl -D "D:\environment\PostgreSQL\15\data" stop
# 重启服务
pg_ctl -D "D:\environment\PostgreSQL\15\data" restart
# 查看状态
pg_ctl -D "D:\environment\PostgreSQL\15\data" status
⚠️ 替换上面的路径为你自己的 PostgreSQL 数据目录(通常是安装时指定的 data
文件夹)。
✅ Linux 系统(如 Ubuntu)使用 systemctl 控制服务
# 启动 PostgreSQL
sudo systemctl start postgresql
# 停止 PostgreSQL
sudo systemctl stop postgresql
# 重启 PostgreSQL
sudo systemctl restart postgresql
# 查看状态
sudo systemctl status postgresql
📁 二、数据库常用操作命令(psql 工具内使用)
进入 psql 命令行:
psql -U postgres -d postgres
命令 | 说明 |
\l 或\list | 列出所有数据库 |
\c <dbname> 或\connect <dbname> | 连接到指定数据库 |
\dt | 列出当前数据库中的所有表 |
\d <table_name> | 查看某张表的结构 |
\du | 列出所有用户及角色 |
\echo :PORT | 显示当前连接端口 |
\password | 修改当前用户的密码 |
\q | 退出 psql |
👤 三、用户与权限管理(在 psql 中执行 SQL)
SQL 命令 | 说明 |
CREATE USER myuser WITH PASSWORD 'mypass'; | 创建用户 |
ALTER USER myuser WITH SUPERUSER; | 赋予超级用户权限 |
ALTER USER myuser WITH CREATEDB; | 允许创建数据库 |
DROP USER myuser; | 删除用户 |
CREATE DATABASE mydb OWNER myuser; | 创建数据库并指定拥有者 |
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser; | 授予用户对数据库的所有权限 |
💾 四、数据库备份与恢复
✅ 备份数据库
pg_dump -U postgres -Fc dbname > dbname.dump
-Fc
: 输出为自定义格式(适合大数据库)
- 更多格式可选:
-Fp
(纯文本)、-Fd
(目录格式)
✅ 恢复数据库
pg_restore -U postgres -d dbname dbname.dump
createdb -U postgres dbname
🔌 五、连接与测试数据库
使用 psql
测试连接
psql -h localhost -p 5432 -U postgres -d postgres
-h
: 主机名或 IP
-p
: 端口号,默认是 5432
-U
: 用户名
-d
: 数据库名
🧪 六、简单 SQL 示例(在 psql 中运行)
-- 创建一张表
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
email TEXT UNIQUE NOT NULL
);
-- 插入数据
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
-- 查询数据
SELECT * FROM users;
-- 更新数据
UPDATE users SET name = 'Bob' WHERE id = 1;
-- 删除数据
DELETE FROM users WHERE id = 1;
📝 七、配置文件相关路径(Linux)
文件 | 作用 |
/etc/postgresql/{version}/main/postgresql.conf | 主配置文件 |
/etc/postgresql/{version}/main/pg_hba.conf | 客户端认证配置文件 |
data_directory (默认/var/lib/postgresql/{version}/main ) | 数据存储目录 |
🧹 八、常见问题排查命令
命令 | 用途 |
pg_lsclusters | 查看正在运行的 PostgreSQL 集群(仅 Linux) |
pg_isready | 检查数据库是否就绪 |
SELECT pg_reload_conf(); | 重新加载配置文件(无需重启) |
SELECT * FROM pg_stat_database; | 查看数据库活动状态 |
📚 总结
类别 | 命令示例 |
启动服务 | pg_ctl -D "data_dir" start |
登录数据库 | psql -U username -d dbname |
查看数据库列表 | \l |
创建用户 | CREATE USER user WITH PASSWORD 'pass'; |
备份数据库 | pg_dump -U user dbname > backup.sql |
恢复数据库 | psql -U user dbname < backup.sql |
连接测试 | psql -h host -p port -U user -d db |