initdb -D d:/data -E gb2312 --locale=c
-D:指定資料目錄路徑-E:設定預設編碼(此處為簡體中文 gb2312)--locale:設定地區設定pg_ctl register -D d:/data -N pgsql
-N:服務名稱(此處為 pgsql)net start pgsql # 啟動
net stop pgsql # 停止
createdb -E gb2312 databaseName
psql databaseName
-- 建立使用者
CREATE USER username PASSWORD 'password';
-- 授予單一權限(PostgreSQL 特性:權限需逐一授予,無法一次授多項)
GRANT SELECT ON tableName TO username;
GRANT INSERT ON tableName TO username;
-- ... 其他權限需分別執行
同 Windows,使用 initdb 初始化,createdb 建立資料庫。
# 啟動/停止/重啟
pg_ctl start -D /path/to/datadir
pg_ctl stop -D /path/to/datadir
pg_ctl restart -D /path/to/datadir
# 單用戶模式啟動(維護用)
postgres --single -D /path/to/datadir
# 多用戶模式伺服器進程
postmaster -D /path/to/datadir
| 操作 | Windows | Linux |
|---|---|---|
| 初始化 | initdb -D /var/lib/pgsql/data -E UTF8 | |
| 服務註冊 | 使用 systemd: systemctl enable postgresql | |
| 服務控制 | pg_ctl start/stop/restart -D datadir 或 systemctl start/stop/restart postgresql | |
| 建立資料庫 | createdb -E UTF8 dbname | |
| 進入終端 | psql dbname |
UTF8,避免跨平台亂碼問題。GRANT 需逐項指定,可建立角色群組簡化管理:CREATE ROLE app_readonly; GRANT SELECT ON ALL TABLES IN SCHEMA public TO app_readonly; GRANT app_readonly TO username;pg_hba.conf:連線驗證設定檔,需依部署環境調整 host/local 驗證方式(trust/md5/scram-sha-256)。postmaster 直接呼叫,統一由 postgres 進程管理;生產環境請使用系統服務管理(systemd/Windows Services)。