本文整理了在 Ubuntu 系统下安装和使用 PostgreSQL 的常用操作,适合开发和运维人员日常查阅,避免每次重复搜索。
1. 更新系统
sudo apt update
sudo apt upgrade -y
2. 安装 PostgreSQL
sudo apt install postgresql postgresql-contrib -y安装完成后系统会自动:
3. 查看版本
psql --version
4. 查看服务状态
sudo systemctl status postgresql
1. 切换到 postgres 用户
sudo -i -u postgres
2. 进入 psql
psql或指定数据库:
psql -U postgres -d postgres\q1. 创建用户
CREATE USER appuser WITH PASSWORD 'strong_password';2. 创建数据库
CREATE DATABASE appdb OWNER appuser;3. 授权
GRANT ALL PRIVILEGES ON DATABASE appdb TO appuser;4. 查看信息
\du
\l| 命令 | 说明 |
|---|---|
| \l | 查看数据库列表 |
| \c dbname | 切换数据库 |
| \dt | 查看数据表 |
| \d table | 查看表结构 |
| \du | 查看用户 |
| \q | 退出 psql |
1. 修改 postgresql.conf
1、sudo vim /etc/postgresql/10/main/postgresql.conf
2、找到:
#listen_addresses = 'localhost'
替换成
listen_addresses = '*' (或者只允许某个网段 / IP : listen_addresses = 'localhost,192.168.1.104')
3、保存退出。
2. 修改 pg_hba.conf(允许远程认证)【必须】
1、sudo vim /etc/postgresql/10/main/pg_hba.conf
2、在文件 最下面 加一行(顺序很重要)
host all all 192.168.1.0/24 md5 #允许某个内网段(推荐)
host all all 192.168.1.50/32 md5 #只允许某一台机器
host all all 0.0.0.0/0 md5 #全部允许,仅用于测试环境(不推荐)生产环境请限制 IP 范围
3. 重启服务
sudo systemctl restart postgresql4. 放行端口
sudo ufw allow 5432
sudo ufw reload建表
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
created_at TIMESTAMP DEFAULT now()
);插入数据
INSERT INTO users (username) VALUES ('admin');查询
SELECT * FROM users;1. 备份数据库(SQL)
pg_dump -U postgres appdb > appdb.sql2. 备份数据库(dump 格式,推荐)
pg_dump -U postgres -Fc appdb > appdb.dump3. 恢复 SQL
psql -U postgres -d appdb < appdb.sql4. 恢复 dump
pg_restore -U postgres -d appdb appdb.dump1. Peer authentication failed
解决方法:
sudo -u postgres psqlpg_hba.conf 为 md5 认证2. 远程无法连接
本文可作为 Ubuntu + PostgreSQL 的长期使用速查文档。
输入您的网址查询是否授权