注意:PostgreSQL 8.2 已於 2011 年停止支援,本文僅供維護舊系統參考。新專案請使用 PostgreSQL 15/16 LTS 版本。
postgres 本地使用者官方封存下載點:https://ftp.postgresql.org/pub/source/v8.2.4/ (Source) 或 v8.2.4/win32/ (Binary)
下載 postgresql-8.2.msi,雙擊執行或右鍵「以管理員身分執行」。

C:\Program Files\PostgreSQL\8.2\D:\PostgreSQL\8.2\ (非系統碟、路徑無空格)C:\Program Files\PostgreSQL\8.2\data\D:\PostgreSQL\8.2\data\ 或獨立磁碟 E:\pgdata\postgres 服務帳號有完整控制權限postgres 超級使用者密碼 (記住!)C / SQL_ASCIIChinese_Taiwan / UTF8 或 BIG5勾選「啟動 Stack Builder」可選擇安裝 JDBC/ODBC/Npgsql 驅動程式。
services.msc → 尋找 "postgresql-8.2" → 狀態: 已啟動, 啟動類型: 自動
cd "C:\Program Files\PostgreSQL\8.2\bin"
psql -U postgres -d postgres
-- 輸入密碼,出現 postgres=# 提示符即成功
# 連線設定
listen_addresses = '*' # 允許遠端連線
port = 5432
# 記憶體 (依實體 RAM 調整,8.2 版參數名稱)
shared_buffers = 64MB # 建議 25% RAM,8.2 最大較小
work_mem = 4MB
maintenance_work_mem = 32MB
# WAL / 檢查點
checkpoint_segments = 16
wal_buffers = 512KB
# 日誌
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d.log'
log_min_duration_statement = 1000 # 記錄超過 1秒 的查詢
修改後需重啟服務:net stop postgresql-8.2 && net start postgresql-8.2
| 問題 | 原因 | 解決方案 |
|---|---|---|
| initdb 失敗:could not create directory | 資料目錄權限不足、路徑含中文/特殊字元 | 以管理員執行、路徑用純英文、授予 Users 完全控制 |
| 服務啟動失敗:1053/1067 | port 衝突、postgresql.conf 語法錯、資料目錄損毀 | netstat -ano 檢查埠、檢查 pg_log 錯誤日誌、重新 initdb |
| pgAdmin 連不上:could not connect to server | 服務未啟、防火牆、listen_addresses、pg_hba.conf | 檢查服務、防火牆開放 5432、postgresql.conf listen='*'、pg_hba.conf 加入 0.0.0.0/0 md5 |
| 中文亂碼 | 資料庫編碼非 UTF8、用戶端編碼不匹配 | 建庫指定 ENCODING 'UTF8'、psql 執行 \encoding UTF8、應用程式連線字串加 Encoding=UTF8 |
pg_dumpall -U postgres -f backup.sqlpsql -U postgres -f backup.sql