以windows服务方式快速部署免安装版Postgres数据库
1、下载Postgresql数据库免安装包
下载地址
https://www.enterprisedb.com/download-postgresql-binaries
如下图:

这次我直接下载最新的12.1的免安装的包。
文件的下载链接:
http://get.enterprisedb.com/postgresql/postgresql-12.1-3-windows-x64-binaries.zip
下载的文件名:
postgresql-12.1-3-windows-x64-binaries.zip
2、安装环境准备及验证
解压文件
解压下载好的安装包至安装目录,我直接安装到本机的C:\Program Files\PostgreSQL\pgsql 目录。
最终的目录结构如下图:

测试环境依赖
通过cmd命令窗口进入到bin 目录,执行如下命令
C:\Program Files\PostgreSQL\pgsql\bin>pg_ctl --help
如果成功执行不报错,并且输出如下,则说明本机不缺少依赖包。
注意:cmd必须以管理员身份运行

如果出现报错,提示缺少xxx,请安装vc的运行组件后再次尝试。
vc_redist.x86.vc2015.14.0.23026.exe
下载链接:
https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads
3、创建并初始化数据目录
创建数据目录
我的环境数据目录位于: D:\PGData,已经提前新建此目录,确保此目录存在
初始化数据目录
指定超级管理员用户名:postgres,通过cmd命令窗口进入到bin 目录,执行如下命令,
C:\Program Files\PostgreSQL\pgsql\bin>initdb -D "D:\PGData" -E UTF-8 --locale=chs -U postgres -W
initdb -D "E:\pgsql\data" -E UTF-8 --locale=chs -U postgres -W
执行成功后如下图:

通过 -W 参数会提示输入超级用户密码
注意权限问题,如果数据目录是在c盘,则需要给user添加完全控制权限
我测试的
C:\Users\zzh\Desktop\pgsql\bin>initdb.exe -D C:\Users\zzh\Desktop\pgsql\data -E UTF-8 --locale=chs -U postgres -W
属于此数据库系统的文件宿主为用户 "zzh".
此用户也必须为服务器进程的宿主.
数据库簇将使用本地化语言 "Chinese_China.936"进行初始化.
initdb: 无法为本地化语言环境"Chinese_China.936"找到合适的文本搜索配置
缺省的文本搜索配置将会被设置到"simple"
禁止为数据页生成校验和.
输入新的超级用户口令:123456
再输入一遍:123456
修复已存在目录 C:/Users/zzh/Desktop/pgsql/data 的权限 ... 成功
正在创建子目录 ... 成功
选择动态共享内存实现 ......windows
选择默认最大联接数 (max_connections) ... 100
选择默认共享缓冲区大小 (shared_buffers) ... 128MB
选择默认时区 ... Asia/Shanghai
创建配置文件 ... 成功
正在运行自举脚本 ...成功
正在执行自举后初始化 ...成功
同步数据到磁盘...成功
initdb: 警告: 为本地连接启用"trust"身份验证
你可以通过编辑 pg_hba.conf 更改或你下次
执行 initdb 时使用 -A或者--auth-local和--auth-host选项.
成功。您现在可以用下面的命令开启数据库服务器:
pg_ctl -D ^"C^:^\Users^\zzh^\Desktop^\pgsql^\data^" -l 日志文件 start
C:\Users\zzh\Desktop\pgsql\bin>
pg_ctl -D "D:\SoftWare\postgresql-14.5-1-windows-x64-binaries\pgsql\data" -l 日志文件 start
5、配置postgres数据库
配置文件位于数据目录:D:\PGData,如下图

打开并修改postgresql.conf
通过文本编辑工具,打开postgresql.conf,修改listen_addresses参数
修改前:

修改后:

打开并修改pg_hba.conf
通过文本编辑工具,打开postgresql.conf,新增一条授权,允许通过远程主机(不限制IP),通过加密密码的方式进行数据库访问

修改之后,如下图:

4、安装服务
以管理员身份进入到C:\Program Files\PostgreSQL\pgsql\bin 目录,运行命令将数据库以windows服务的方式运行管理:
C:\Program Files\PostgreSQL\pgsql\bin\pg_ctl register -D "D:\PGData" -N postgresql-12_1_3-x64 -S auto -U "NT AUTHORITYLocalService"
账户权限说明:
| 账户名称 | 账户标识 |
|---|---|
| 本地服务 | NT AUTHORITYLocalService |
| 网络服务 | NT AUTHORITYNetworkService |
安装成功后如下图:

然后进入windows服务管理器,启动服务:

若服务启动失败,或者需要更换数据存放目录可以取消注册服务:
C:\Program Files\PostgreSQL\pgsql\bin\pg_ctl unregister -N postgresql-12_1_3-x64
6、创建用户、数据库
连接数据库
打开cmd窗口,通过psql终端测试数据库是否可用,使用超级用户postgres连接默认的postgres数据库,执行如下命令:
C:\Usersadmin>psql -d postgres -U postgres
连接成功后如下图:

创建用户、数据库
- 创建用户
CREATE USER dba WITH PASSWORD 'dba' SUPERUSER;

- 创建数据库
CREATE DATABASE exampledb OWNER dba;

- 切换用户及数据库
\c exampledb dba;

到此,postgres数据库的搭建已经完成,接下来可以愉快的使用了。