适用于 Linux 系统(如 Ubuntu 20.04+)。包含 PostgreSQL 安装、初始化、常用插件配置等内容。
📦 1. 安装 PostgreSQL
# 更新软件包
sudo apt update && sudo apt upgrade -y
# 安装 PostgreSQL
sudo apt install -y postgresql postgresql-contrib
# 检查服务状态
sudo systemctl status postgresql
# 设置开机自启
sudo systemctl enable postgresql
👤 2. 创建数据库用户与数据库
# 切换到 postgres 用户
sudo -i -u postgres
# 创建数据库用户
createuser <your_user> --pwprompt
# 创建数据库并指定所有者
createdb <your_db> -O <your_user>
# 退出 postgres 用户
exit
🔐 3. 修改远程访问设置(可选)
# 修改监听地址(默认为本地,改为监听所有)
sudo vim /etc/postgresql/*/main/postgresql.conf
# 找到:
# listen_addresses = 'localhost'
# 修改为:
listen_addresses = '*'
# 修改访问控制规则
sudo vim /etc/postgresql/*/main/pg_hba.conf
# 添加一行(允许远程连接):
host all all 0.0.0.0/0 md5
# 重启服务使配置生效
sudo systemctl restart postgresql
🔌 4. 安装与启用常见插件(扩展)
切换到 PostgreSQL 客户端:
sudo -u postgres psql -d <your_db>
✅ 启用常用插件(推荐)
-- uuid 生成插件
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
-- 查询统计插件
CREATE EXTENSION IF NOT EXISTS "pg_stat_statements";
-- 地理空间插件(需预安装)
CREATE EXTENSION IF NOT EXISTS "postgis";
-- hstore 键值存储
CREATE EXTENSION IF NOT EXISTS "hstore";
-- citext 大小写不敏感文本
CREATE EXTENSION IF NOT EXISTS "citext";
-- ltree 层级路径查询
CREATE EXTENSION IF NOT EXISTS "ltree";
postgis 插件可能需要预安装依赖:
sudo apt install -y postgresql-14-postgis-3 postgresql-14-postgis-3-scripts
📊 5. 启用性能监控与日志插件
编辑配置文件启用 pg_stat_statements:
sudo vim /etc/postgresql/*/main/postgresql.conf
# 添加或取消注释以下配置
shared_preload_libraries = 'pg_stat_statements'
track_activity_query_size = 2048
pg_stat_statements.max = 10000
pg_stat_statements.track = all
# 重启服务
sudo systemctl restart postgresql
🔧 6. 常见优化建议(基础版)
# 修改 postgresql.conf 中建议参数(根据实例内存调整)
shared_buffers = 1GB
work_mem = 64MB
maintenance_work_mem = 256MB
effective_cache_size = 3GB
wal_buffers = 16MB
checkpoint_completion_target = 0.9
default_statistics_target = 100
🧪 7. 测试连接
# 本地测试连接
psql -U <your_user> -d <your_db> -h localhost
# 远程测试连接(需开放端口)
psql -U <your_user> -d <your_db> -h <your_host_ip> -p 5432
🔁 8. 备份与恢复(推荐使用 pg_dump)
# 备份数据库
pg_dump -U <your_user> -F c -b -v -f <your_db>.backup <your_db>
# 恢复数据库
pg_restore -U <your_user> -d <your_db> -v <your_db>.backup
📚 9. 插件推荐速查表
插件名 | 功能描述 | 启用命令 |
---|---|---|
uuid-ossp | UUID 生成 | CREATE EXTENSION "uuid-ossp"; |
pg_stat_statements | SQL 性能分析 | CREATE EXTENSION "pg_stat_statements"; |
postgis | 地理空间查询 | CREATE EXTENSION "postgis"; |
hstore | 键值存储 | CREATE EXTENSION "hstore"; |
citext | 忽略大小写的文本类型 | CREATE EXTENSION "citext"; |
ltree | 树形路径查询 | CREATE EXTENSION "ltree"; |