Windows上PostgreSQL安裝配置教程
這篇文章主要為大家詳細介紹了Windows上PostgreSQL安裝配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
PostgreSQL的擴展PostGIS是最著名的開源GIS數據庫。
安裝PostgreSQL是第一步。
1.下載PostgreSQL的二進制安裝文件。
PostgreSQL官網–>Download–>Windows 64位,如圖所示:
(1)官網:
https://www.postgresql.org/
(2)Download:
https://www.postgresql.org/download/
https://www.postgresql.org/download/windows/
(3)Windows 64位(根據自己系統版本選擇)
https://www.enterprisedb.com/download-postgresql-binaries
2.解壓壓縮包,配置環境變量
(1)首先在pgsql(E:\postgresql-11.12-2-windows-x64-binaries\pgsql)文件夾下建立一個名為data的文件夾(這是數據庫的數據存儲文件夾)
(2)然后在pgsql文件夾下新建一個名為env.vbs的文件
文件內容如下:
1 on error resume next 2 set sysenv=CreateObject("WScript.Shell").Environment("system") 'system environment array 3 Path = CreateObject("Scripting.FileSystemObject").GetFolder(".").Path 'add variable 4 sysenv("PGHOME")="E:\postgresql-11.12-2-windows-x64-binaries\pgsql" 5 sysenv("PGHOST")="localhost" 6 sysenv("Path")=sysenv("PGHOME")+"\bin;"+sysenv("Path") 7 sysenv("PGLIB")=sysenv("PGHOME")+"\lib" 8 sysenv("PGDATA")=sysenv("PGHOME")+"\data" 9 10 wscript.echo "PostgreSQL Success"
(3)最后運行此腳本
3.初始化數據庫
Microsoft Windows [版本 10.0.18363.1621]
(c) 2019 Microsoft Corporation。保留所有權利。 C:\WINDOWS\system32>cd E:\postgresql-11.12-2-windows-x64-binaries\pgsql C:\WINDOWS\system32>e: E:\postgresql-11.12-2-windows-x64-binaries\pgsql>cd bin E:\postgresql-11.12-2-windows-x64-binaries\pgsql\bin>initdb -D E:\postgresql-11.12-2-windows-x64-binaries\pgsql\data 屬於此數據庫系統的文件宿主為用戶 "admin". 此用戶也必須為服務器進程的宿主. 數據庫簇將使用本地化語言 "Chinese (Simplified)_China.936"進行初始化. 本地化隱含的編碼 "GBK" 不允許作為服務器端的編碼. 默認的數據庫編碼將采用 "UTF8" 作為代替. initdb: 無法為本地化語言環境"Chinese (Simplified)_China.936"找到合適的文本搜索配置 缺省的文本搜索配置將會被設置到"simple" 禁止為數據頁生成校驗和. 修復已存在目錄 E:/postgresql-11.12-2-windows-x64-binaries/pgsql/data 的權限 ... 成功 正在創建子目錄 ... 成功 選擇默認最大聯接數 (max_connections) ... 100 選擇默認共享緩沖區大小 (shared_buffers) ... 128MB selecting default timezone ... Asia/Hong_Kong 選擇動態共享內存實現 ......windows 創建配置文件 ... 成功 正在運行自舉腳本 ...成功 正在執行自舉后初始化 ...成功 同步數據到磁盤...成功 警告:為本地連接啟動了 "trust" 認證. 你可以通過編輯 pg_hba.conf 更改或你下次 執行 initdb 時使用 -A或者--auth-local和--auth-host選項. 成功。您現在可以用下面的命令開啟數據庫服務器: pg_ctl -D ^"E^:^\postgresql^-11^.12^-2^-windows^-x64^-binaries^\pgsql^\data^" -l logfile start E:\postgresql-11.12-2-windows-x64-binaries\pgsql\bin>pg_ctl unregister -N postgresql pg_ctl: 服務 "postgresql" 沒有注冊 E:\postgresql-11.12-2-windows-x64-binaries\pgsql\bin>pg_ctl register -D "E:\postgresql-11.12-2-windows-x64-binaries\pgsql/data" E:\postgresql-11.12-2-windows-x64-binaries\pgsql\bin>pg_ctl start -w -D "E:\postgresql-11.12-2-windows-x64-binaries\pgsql\data" 等待服務器進程啟動 ....2021-07-27 14:19:15.925 HKT [8232] 日志: 正在監聽IPv6地址"::1",端口 5432 2021-07-27 14:19:15.925 HKT [8232] 日志: 正在監聽IPv4地址"127.0.0.1",端口 5432 2021-07-27 14:19:16.052 HKT [1204] 日志: 數據庫上次關閉時間為 2021-07-27 14:17:30 HKT 2021-07-27 14:19:16.081 HKT [8232] 日志: 數據庫系統准備接受連接 完成 服務器進程已經啟動 E:\postgresql-11.12-2-windows-x64-binaries\pgsql\bin>net user postgres postgres /add 命令成功完成。 E:\postgresql-11.12-2-windows-x64-binaries\pgsql\bin>net user alan_ps 123456 /add 命令成功完成。 E:\postgresql-11.12-2-windows-x64-binaries\pgsql\bin>net user \\DESKTOP-DK30POB 的用戶帳戶 ------------------------------------------------------------------------------- admin Administrator alan_ps DefaultAccount Guest postgres WDAGUtilityAccount WmsControl 命令成功完成。 E:\postgresql-11.12-2-windows-x64-binaries\pgsql\bin>psql -U iFunk -d alan_ps 2021-07-27 14:21:03.633 HKT [8036] 致命錯誤: 角色 "iFunk" 不存在 psql: 致命錯誤: 角色 "iFunk" 不存在 E:\postgresql-11.12-2-windows-x64-binaries\pgsql\bin>psql -U iFunk -d postgress 2021-07-27 14:21:36.733 HKT [1372] 致命錯誤: 角色 "iFunk" 不存在 psql: 致命錯誤: 角色 "iFunk" 不存在 E:\postgresql-11.12-2-windows-x64-binaries\pgsql\bin>
以管理員身份打開命令提示符,定位到bin目錄下,輸入以下命令:
產生data資料
代碼如下:
initdb -D E:\postgresql-11.12-2-windows-x64-binaries\pgsql\data
刪除一個服務:
增加一個服務:
pg_ctl register -D "E:\postgresql-11.12-2-windows-x64-binaries/pgsql/data"
啟動服務
pg_ctl start -w -D "c:/postgresql/11/pgsql/data"
創建用戶postgres,密碼同樣是postgres:
net user postgres postgres /add
可以修改配置文件的配置,比如端口,默認為 5432,當創建多個數據庫實例時,需要配置不同的端口才能啟動。
4、啟動 vs 停止,注冊 Windows 服務
start: pg_ctl -D D:/Programs/pgsql/data -l D:/Programs/pgsql/data/mydb.log start stop: pg_ctl -D D:/Programs/pgsql/data stop
5、 將其注冊成 windows 服務,隨機啟動:
1、首先,在 data 目錄下創建一個 start.bat
@echo off pg_ctl -D D:/Programs/pgsql/data -l D:/Programs/pgsql/data/mydb.log start
上面的目錄信息,必須跟創建的數據庫實例的目錄一致!
2、通過 sc 注冊服務
sc create pgsqlservice binPath=E:\postgresql-11.12-2-windows-x64-binaries\pgsql\data\start.bat start=auto
需要注意兩點:
必須使用管理員權限打開 CMD 窗口,不然沒有權限;
命令中 = 后面必須有空格,這個格外需要注意;
6、創建PostgreSQL用戶和它要找的那個相符
createuser --superuser postgres
查看系統用戶
net user
7、創建角色
postgres=# create role alan_psql;
CREATE ROLE
postgres=#
8:登錄數據庫
E:\postgresql-11.12-2-windows-x64-binaries\pgsql\bin>psql -h localhost -p 5432 -U admin -W postgres
6.使用PgAdmin,建立數據庫連接
在E:\postgresql-11.12-2-windows-x64-binaries\pgsql\pgAdmin 4\bin下,有pgAdmin4.exe,雙擊打開。
我用的是超級用戶postgres建立的連接