根据需求选择稳定版(LTS)(如PostgreSQL 12、13、14)或非LTS版(如PostgreSQL 15、16)。LTS版提供长期支持,适合生产环境;非LTS版包含最新功能,但支持周期较短。安装时可通过sudo apt install postgresql-{version}指定版本(如sudo apt install postgresql-14),避免因版本过旧或过新导致的兼容性问题。
安装过程中若提示缺少库文件(如libpq-dev、libssl-dev),可使用sudo apt install <缺失包名>手动安装。依赖性问题会导致编译或运行失败,确保所有依赖包均为最新版本(通过sudo apt update && sudo apt upgrade更新系统)。
PostgreSQL不同版本的postgresql.conf(配置文件路径:/etc/postgresql/{version}/main/postgresql.conf)参数可能存在差异(如listen_addresses默认值从localhost改为*)。升级或迁移前,需参考对应版本的官方文档,调整参数设置(如允许远程连接需将listen_addresses设为*),并重启服务使配置生效:sudo systemctl restart postgresql。
第三方插件(如pg_stat_statements、postgis)需与PostgreSQL版本匹配。若安装插件时报错“unsupported version”,需更新插件至兼容版本(通过sudo apt install <插件名>-postgresql-{version})或寻找替代方案。可通过SELECT * FROM pg_available_extensions;查看当前版本支持的扩展。
PostgreSQL升级可能导致数据类型(如jsonb的存储格式)或SQL语法(如ILIKE的大小写处理)变化。数据迁移前,需参考版本升级指南(如从13升级到14的ALTER TABLE语法调整),使用pg_dump导出数据并测试导入,确保数据一致性。
若需升级版本,需遵循以下步骤:
pg_dumpall > backup.sql;sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list',并导入密钥;sudo apt update;sudo apt install postgresql-{新版本};sudo systemctl stop postgresql;pg_upgrade工具升级(自动处理数据迁移);sudo systemctl status postgresql)及数据完整性。若出现连接错误(如“Connection refused”),需检查:
sudo systemctl status postgresql(确保服务运行);postgresql.conf中listen_addresses是否允许远程连接(*),pg_hba.conf(路径:/etc/postgresql/{version}/main/pg_hba.conf)中是否添加了客户端认证规则(如host all all 0.0.0.0/0 md5);sudo ufw allow 5432/tcp(开放默认端口);sudo tail -f /var/log/postgresql/postgresql-{version}-main.log(查看具体错误信息)。pgAdmin作为管理工具,需与PostgreSQL服务器版本匹配(如pgAdmin 4.20+支持PostgreSQL 15)。若出现兼容性错误(如“Invalid server version”),需更新pgAdmin(sudo apt install pgadmin4)或降级PostgreSQL至兼容版本。