根據需求選擇穩定版(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至兼容版本。