Postgres 數據庫在原有示例正常運行情況下,新增一個端口示例,主要目的解決新的項目和原有項目的數據庫部署不在沖突,可以獨立運行,備份和還原數據互不影響,主要用的的命令有 initdb 數據庫初始化 ,pg_ctl start 進行示例的啟動,通過 pg_ctl.exe register 可以實現將postgres 注冊成windows 服務,解決命令行無法隨開機一起啟動等問題。 本例子使用的postgres 版本是10 ,pgAdmin4.0。命令環境用的是cmder 強力推薦(https://cmder.net/)
注意為了不影響原有的數據庫使用,務必要把原有的示例端口號指定,如果不指定會造成原有數據庫示例不能進行連接(詳見步驟2)。
initdb 官方文檔寫可以用 pg_ctl init[db] [-D datadir] [-s] [-o initdb-options] 代替,我沒試過,也可以試試。
pg_ctl start [-D datadir] [-l filename] [-W] [-t seconds] [-s] [-o options] [-p path] [-c] 啟動示例
pg_ctl register [-D datadir] [-N servicename] [-U username] [-P password] [-S a[uto] | d[emand] ] [-e source] [-W] [-t seconds] [-s] [-o options] 進行window 服務注冊
postgres官網文檔對pg_ctl 命令詳解 鏈接 http://www.postgres.cn/docs/10/app-pg-ctl.html
1、 initdb -D C:\Soft\PostgreSQL\10\data2 -E UTF-8 --locale=chs -U postgres -W 如圖1 所示;

圖1 initdb 命令進行初始化數據庫
2、修改默認示例data 目錄 postgresql.conf 第63行端口號:5432(不然原有示例會報錯),如圖2所示。

圖2 修改data\postgresql.conf 默認示例端口,指定為5432
修改新目錄 data2文件夾中配置文件 postgresql.conf 第63行端口號:5433,如圖3所示;

圖3 修改新目錄 data2文件夾中配置文件 postgresql.conf
3、 pg_ctl -D ^"C^:^\Soft^\PostgreSQL^\10^\data2^" -l logfile start 啟動服務進行測試,如圖4所示;

圖4 啟動新示例
4、客戶端連接測試
(1)用pgadmin 連接原有示例5432,配置參數如圖5所示;

圖5 pgadmin 連接原有示例5432
已經連接成功了,原有示例正常運行~~

圖6 pgadmin 展開原有數據庫示例
(2)連接5433 端口示例

圖6 pgadmin 連接實例5433
新端口連接成功!

圖7 pgadmin 連接實例5433
5、將新的端口注冊成新的服務
pg_ctl.exe register -N "pgsql5433" -D "C:\Soft\PostgreSQL\10\data2"

查看服務已經成功注冊,這樣就可設置服務隨開機一起啟動了

