PostgreSQL(一) 编译安装运行
原创,如转发需注明出处。
多年没写博客,一直用的个人笔记软件,最近准备阅读PostgreSQL源码,故记录。(这两年PostgreSQL数据库在某些环境下是比较火的,原因想必大家都清楚。)
PostgreSQL是开放源码的数据库,支持Windows、Linux、Unix等多种操作系统。下面将会介绍PostgreSQL的编译、安装与运行。
一、Windows环境
1、环境准备
Windows10、Virtual Studio 2019社区版、PostgreSQL 14.3、MinGW(https://osdn.net/projects/mingw/downloads/68260/mingw-get-setup.exe)
MinGW安装后需要安装以下依赖包:

安装perl:https://strawberryperl.com/download/5.32.1.1/strawberry-perl-5.32.1.1-64bit.msi(注意配置环境变量)
修改文件编码,改成UTF-8 BOM编码,可以使用VS2019另存或者Notepad++修改:
postgresql-14.3\src\fe_utils\print.c 和 postgresql-14.3\src\backend\access\brin\brin_bloom.c
避免出现如下类似错误:
“D:\postgresql-14.3\pgsql.sln”(默认目标) (1) ->
“D:\postgresql-14.3\postgres.vcxproj”(默认目标) (2) ->
(ClCompile 目标) ->
D:\postgresql-14.3\src\backend\access\brin\brin_bloom.c(1,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicod
e 格式以防止数据丢失 [D:\postgresql-14.3\postgres.vcxproj]
然后打开:

进入D:\postgresql-14.3\src\tools\msvc目录,执行命令perl build.pl DEBUG,此处使用DEBUG是方便后面调试跟踪:

编译完成后,可以执行:perl vcregress.pl check命令跑下测试。然后,执行perl install.pl D:\PostgreSQL\pg14 进行安装,需要保证安装目录已存在。
进入到pg安装目录:cd D:\PostgreSQL\pg14\bin,执行建库操作:initdb.exe -D ../data,建库完成后,启动pg数据库:pg_ctl.exe -D ../data -l logfile start,启动完成后进入数据库:psql.exe -d postgres,如下:

接下来,即可通过VS2019 Attach到进程调试pgsql了,可以通过select pg_backend_pid();查询pid,也可以直接搜索进程名称。
二、Linux编译安装
接下来,既可以通过gdb进行调试pgsql代码。
PostgreSQL(一) 编译安装运行的更多相关文章
- Phonegap项目创建 编译 安装 运行
一.创建 Phonegap项目 1. cd workspace 2.创建phonegap项目 cordova create 目录 识别符 显示名 例如:cordova create hello com ...
- rehat7.X下postgresql 11编译安装
文档目录结构: 一.准备 操作系统版本:rehat7.6 Postgresql:11.2 软件安装目录:/pgsql11/basedir 数据文件存放目录:/pgsql11data/ 11.2的下载地 ...
- postgresql编译安装与调试(二)
接前文postgresql编译安装与调试(一),继续说说postgresql的编译安装与调试. 上一篇已经详细说明了如何在Linux系统上编译安装postgresql,这次我们在此基础上简单讲讲如何在 ...
- Linux环境PostgreSQL源码编译安装
Linux环境PostgreSQL源码编译安装 Linux版本: Red Hat 6.4 PostgreSQL版本: postgresql-9.3.2.tar.gz 数据存放目录: /var/post ...
- Ubuntu下编译安装postgreSQL 10.5
Ubuntu下编译安装postgreSQL 10.5 ubuntu 16.04 LTS系统postgreSQL 10.5 安装包准备 1.从PostgreSQL官网下载PostgreSQL的安装包 安 ...
- 2-21-源码编译安装LAMP
编译安装LAMP所需要及其所使用的源码版本: httpd version:httpd-2.4.16 apr version:apr-1.5.2 pcre version:pcre-8.37 apr ...
- postgresql编译安装与调试(一)
因为最近组里的项目和postgresql有关,并且需要查看和调试源码,所以专门学习了一下如何安装和调试postgresql,此博文用来记录自己的安装和调试过程.安装环境是CentOS6(CentOS7 ...
- postgreSQL在Centos6下编译安装
1.准备安装源 下载地址:https://www.postgresql.org/ftp/source/ 下载并解压. 2.软件编译安装 配置.检查安装环境 ./configure --prefix=/ ...
- CentOS 7 源码编译安装PostgreSQL 9.5
下载 在postgresql的官方即可找到源码文件目录,地址如下:https://www.postgresql.org/ftp/source/,在下载列表中根据需求选择版本,进入子目录后,可以看到文件 ...
随机推荐
- 一个模仿微信群聊的H5页面
开始 上半年小米Max发布的时候,做了一个在朋友圈传播的模仿微信的群聊界面H5页面:一群公司的大咖在群里聊小米Max,用户可以向大咖们提问,以此了解产品. 页面的主体是群聊对话,同时在对话中包含了很多 ...
- gulp详细基础教程
一.gulp简介 1.gulp是什么? gulp是前端开发过程中一种基于流的代码构建工具,是自动化项目的构建利器:它不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成: ...
- JavaScript 工作原理之三-内存管理及如何处理 4 类常见的内存泄漏问题(译)
原文请查阅这里,本文有进行删减,文后增了些经验总结. 本系列持续更新中,Github 地址请查阅这里. 这是 JavaScript 工作原理的第三章. 我们将会讨论日常使用中另一个被开发者越来越忽略的 ...
- java中异常到底有什么用?举例
异常的意义:马克-to-win:通过上面的例子,我们看出通过引入异常这种技术,即使出现不测(用户把0赋给除数),也可以让程序不崩溃,还能继续优雅 的运行.那,这种技术有用,值得学.马克-to-win: ...
- centos报错:Could not retrieve mirrorlist http://mirrorlist.centos.org/
检查是否可以上网. ping 114.114.114.114 如果不可以,调试通.通了之后下一步: 然后检查DNS设置是否正常. ping www.baidu.com 不正常的话,设置DNS,如下: ...
- Centos搭建 Docker 环境
搭建 Docker 环境 安装与配置 Docker 安装 Docker Docker 软件包已经包括在默认的 CentOS-Extras 软件源里.因此想要安装 docker,只需要运行下面的 yum ...
- oracle 11g手工建数据库过程
创建需求和目的 1.需要把11机器上的oracle库中的表导入到12机器oracle库 2.11机器上的数据库fp在12机器上不存在,需要创建新库,以便导入.3.我们只需导入业务库shp即可,不需要把 ...
- RESTFUL风格的接口命名规范
1.首先restfulf风格的api是基于资源的,url命名用来定位资源,而不是表示动作,动作通过请求方式进行表示. 2.URL中应该单复数区分,推荐的实践是永远只用复数.比如GET /api/use ...
- 十、包机制与JavaDoc
一.包机制 为了更好的组织类,Java提供了包机制,用于区别类名的命名空间. 包语句的语句格式为: package pkg1[. pkg2[. pkg3...]]; 一般使用公司域名倒置作为包名:例如 ...
- Zabbix-Proxy 部署和运行
Zabbix-Proxy 部署&运行 前提 版本: zabbix-server 5.4 任务: 通过SNMP监控网络设备,需要需通过zabbix-proxy 发送到zabbix-server. ...