Windows 系统 PostgreSQL 手工安装配置方法

核心提示自从2020年底开始接触 PostgreSQL 以来就喜欢上了这个数据库,个人感觉比 MySQL 好用,多表联合查询性能好很多,同时也不存在 SQLServer 的版权授权费用问题。搭配 .NET 开发很好用,目前手里的项目全部都是采用 P

自从2020年底开始接触 PostgreSQL 以来就喜欢上了这个数据库,个人感觉比 MySQL 好用,多表联合查询性能好很多,同时也不存在 SQLServer 的版权授权费用问题。搭配 .NET 开发很好用,目前手里的项目全部都是采用 PostgreSQL 进行数据支撑的。

本文主要说一下在 Windows 系统中安装 PostgreSQL 的方法,我这里没有采用 exe 安装包的形式去安装,EDB 发布的那个 exe 安装包形式的对于中文环境数据库的排序规则设定有问题,所以我采用了官方 ZIP 压缩包形式解压后手动安装的形式。

先说一下安装包的获取方式,访问

https://www.

postgresql.org/download

/windows/

目前最新稳定版是 PostgreSQL 14.5 点击就可以获取到我们所需要的 zip 压缩包了默认其中包含有这些文件夹,我箭头标记的 docpgAdmin 4StackBuildersymbols 四个文件夹可以直接删除,然后进入 bin 目录,再删掉 stackbuilder 相关的一些文件即可,我贴了一个 bat 命令,大家可以直接在 bin 文件夹中执行下面的命令,对相关文件进行删除。

del

stackbuilder

.

exe

del

libcurl

.

dll

del

wxbase313u_vc_x64_custom

.

dll

del

wxbase313u_xml_vc_x64_custom

.

dll

del

wxbase313ud_net_vc_x64_custom

.

dll

del

wxmsw313u_adv_vc_x64_custom

.

dll

del

wxmsw313u_core_vc_x64_custom

.

dll

del

wxmsw313ud_aui_vc_x64_custom

.

dll

del

wxmsw313ud_html_vc_x64_custom

.

dll

del

wxmsw313ud_xrc_vc_x64_custom

.

dll

大家可以把清理好之后的文件做一个压缩包各自保存起来,以后换别的电脑安装 PostgreSQL 的时候可以直接用自己弄好的这个压缩包。接下来开始说如何进行安装 PostgreSQL,文件都准备好之后,首先把文件夹移动到准备安装的位置,我这里移动到了 D:SoftwarePostgreSQL 路径启动 cmd 进入我们的路径 D:SoftwarePostgreSQL 切入到 bin 文件夹中

cmd

d:

cd

D:

Software

PostgreSQL

cd

bin

初始化过程中需要输入两次 超级用户口令,用于设置 postgres 用户的密码数据库初始化完成之后,就可以选择安装为 Windows 服务了,注册服务命令如下

pg_ctl

.

exe

register

-D

"D:SoftwarePostgreSQLdata"

-PostgreSQL

然后还是在 D:SoftwarePostgreSQLdata 文件夹中找到 pg_hba.conf 打开后直接情况里面原来的内容,用如下内容进行替换host all all 0.0.0.0/0 scram-sha-256host all all ::/0 scram-sha-256也可以通过 Windows 服务来控制启动和停止 如果想要卸载 PostgreSQL 则需要先停止 服务

net

stop

PostgreSQL

这样就卸载完成了,然后直接去 D:Software 删掉 PostgreSQL 文件夹就可以了。


关于在Windows 环境运行 PostgreSQL 在连接数的配置需要注意以下这个知识点:由于PostgreSQL所依赖的一些库依赖于user32.dll,后者从内存中一块称为桌面堆的区域中分配内存。

桌面堆被分配给了每一个登录的会话,在 Windows 10 以上的操作系统通常一个非交互的会话将会分配给768KB。每个交互登录会话将会分配给20MB的桌面堆,每个postgres进程典型的桌面堆消耗是3.2KB。

  • 当作为Windows服务运行时,因为每个非交互会话将会分配768KBMB的桌面堆,所以大约可以支撑 200-220个连接。

  • 当在命令行方式运行时,因为每个交互登录会话将会分配20MB的桌面堆,所以大约可以支撑 5000-6000个连接。
以上说的值是操作系统默认的值,这个堆分配大小可以通过调整注册表来进行修改,但是此操作需要非常小心,一旦指定的值过大,系统将无法启动,所以不推荐去手动修改这个值。

如果想要了解更多这个知识点可以看 微软官方的这个说明:

https://

learn.microsoft.com/zh-

CN/troubleshoot/windows/win32/user32-kernel32-not-initialize

结合上面的知识点,所以我们在Windows环境下配置 PostgreSQL 的最大连接数时,如果采用 Windows 服务模式运行则配置最大连接数为200比较好,如果需要200个以上的并发连接,则最好采用控制台形式启动运行PostgreSQL,同时结合计算机的可以内存去综合考虑一般100个连接数会消耗 1G内存,所以假设我们电脑内存为8G,考虑到系统本身运行需要2G内存,所以这是 PostgreSQL 的最大连接数配置为500 左右即可。

 
友情链接
鄂ICP备19019357号-22