1.下载数据库
打开 PostgreSQL 官网 https://www.postgresql.org/,点击菜单栏上的 Download ,可以看到这里包含了很多平台的安装包,包括 Linux、Windows、Mac OS等 。
Linux 我们可以看到支持 Ubuntu 和 Red Hat 等各个平台,点击具体的平台链接,即可查看安装方法:

点击上图中的 file browser,我们还能下载 PostgreSQL 最新的源码。

2.源码编译安装
# 下载源码包(以16.0版本为例)wget https://ftp.postgresql.org/pub/source/v16.0/postgresql-16.0.tar.gztar -xzf postgresql-16.0.tar.gzcd postgresql-16.0# 配置编译选项./configure --prefix=/usr/local/pgsql16 \--with-openssl \--with-libxml \--with-libxslt# 编译并安装(建议使用-j参数加速,如-j4表示4线程)make -j$(nproc)sudo make install# 初始化数据库集群sudo mkdir -p /var/lib/pgsql/16/datasudo chown postgres:postgres /var/lib/pgsql/16/datasudo -u postgres /usr/local/pgsql16/bin/initdb -D /var/lib/pgsql/16/data
3.安装后配置优化
安装完成后需进行三项关键配置:修改访问权限、配置远程连接及调整内存参数。
3.1 修改访问权限
PostgreSQL默认仅允许本地连接,需修改pg_hba.conf文件(路径因安装方式而异):
# 包管理器安装路径(Ubuntu)sudo nano /etc/postgresql/15/main/pg_hba.conf# 添加以下行允许所有IP通过密码连接host all all 0.0.0.0/0 md5
修改后需重启服务生效:sudo systemctl restart postgresql。
3.2 配置远程连接
编辑postgresql.conf文件调整监听地址:
sudo nano /etc/postgresql/15/main/postgresql.conf# 修改以下参数listen_addresses = '*' # 允许所有IP连接# 或指定IP列表,如 listen_addresses = '192.168.1.100,127.0.0.1'
3.3 调整内存参数
对于生产环境,需优化共享内存和缓存设置。在postgresql.conf中修改:
shared_buffers = 4GB # 通常设为系统内存的25%-40%work_mem = 16MB # 每个查询操作使用的内存maintenance_work_mem = 1GB # 维护操作(如VACUUM)使用的内存effective_cache_size = 12GB # 操作系统缓存的预估值
修改后需重新加载配置:sudo systemctl reload postgresql。
4.验证数据库
编译安装需手动管理服务,建议创建systemd服务文件实现开机自启。
安装完毕后,系统会创建一个数据库超级用户 postgres,密码为空。
sudo -i -u postgres
设置密码:
ALTERUSER postgres WITH PASSWORD 'your_secure_password';
这时使用以下命令进入 postgres,输出以下信息,说明安装成功:
~$ psql
psql (9.5.17)
Type "help" for help.
postgres=#
输入以下命令退出 PostgreSQL 提示符:
\q
PostgreSQL 安装完成后默认是已经启动的,但是也可以通过下面的方式来手动启动服务。
sudo /etc/init.d/postgresql start # 开启
sudo /etc/init.d/postgresql stop # 关闭
sudo /etc/init.d/postgresql restart # 重启
5.常见问题解决方案
5.1 端口冲突问题
若5432端口被占用,可通过以下步骤排查:
# 查看占用端口的进程sudo netstat -tulnp | grep 5432# 终止冲突进程(示例)sudo kill -9 <PID># 或修改PostgreSQL监听端口sudo nano /etc/postgresql/15/main/postgresql.conf# 修改 port = 5433
5.2 认证失败问题
若出现psql: FATAL: password authentication failed错误,需检查:
- 确认密码是否正确(安装时设置的密码)
- 检查
pg_hba.conf是否允许当前IP的连接方式(如md5认证) - 确认用户是否存在:
sudo -u postgres psql -l
5.3 性能瓶颈优化
对于高并发场景,建议:
- 增加
max_connections(默认100,建议根据负载调整) - 启用连接池(如PgBouncer)
- 定期执行
VACUUM FULL或设置自动清理(autovacuum = on)