前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[SZU] 数据库内核课程 PostgreSQL 12.5 源码安装避坑 guide

[SZU] 数据库内核课程 PostgreSQL 12.5 源码安装避坑 guide

作者头像
Miigon
修改2023-02-25 10:57:23
1.2K0
修改2023-02-25 10:57:23
举报
文章被收录于专栏:Miigon's Blog

课程:2022 年下学期,秦建斌老师的《数据库内核原理与实现》课程。 示例环境:Ubuntu 20.04 LTS PostgreSQL 版本: 12.5

1. 准备 linux 环境/虚拟机/或Windows下使用wsl

Linux/Mac 用户可直接编译,Windows 用户自行搜索 wsl 教程配置后,剩余流程同 Linux 用户。

Mac 用户需要用其他方式(homebrew 或 macports)安装 configure 过程中缺少的包。

2. 登陆机器,拷贝 PGDev.zip 到用户文件夹~

使用 ssh/scp,或执行指令现场下载:

代码语言:txt
复制
wget https://ghproxy.com/https://raw.githubusercontent.com/Miigon/pgdev-zip/master/PGDev.zip -O PGDev.zip

3. 安装 unzip 和 libreadline-dev:

代码语言:javascript
复制
sudo apt install unzip libreadline-dev

4. 解压 PGDev.zip

代码语言:javascript
复制
unzip PGDev.zip

解压完成后,出现 PGDev 文件夹:

5. 进入 PGDev 文件夹,创建 pghome 与 data 文件夹,用于存储 PostgreSQL 本身以及 PostgreSQL 所产生的数据

代码语言:javascript
复制
cd PGDev/
mkdir pghome
mkdir data

6. 使用 nano (或 vim/gedit 等其他编辑器) 编辑 env-debug 文件:

方向键移动光标

  • 将第一行的 PGHOME=/Users/jqin/PGDev/target-debug 整行改为 PGHOME=~/PGDev/pghome
  • 将第三行的 export PGHOST=$PGDATA 改为 export PGHOST=127.0.0.1

修改后:

按 Control + X,下方提示 Save modified buffer?,按 Y,出现 File Name To Write: env-debug 直接按回车,保存退出。

7. 执行 source

代码语言:javascript
复制
source env-debug

这一步将前面配置好的路径导入当前 shell 的环境变量中,没有任何输出则表示执行成功

8. 执行 configure(autoconf)

cd 进入 postgresql-12.5,执行:

代码语言:javascript
复制
./configure --prefix=$PGHOME --enable-debug

UPDATE: 2022-07 增加 –enable-debug 选项,方便后续 gdb 调试

(确保执行时路径正确)

如果一开始有装 libreadline-dev,这里应该能执行成功:

9. 构建 & 安装

执行:

代码语言:javascript
复制
make -j4

这里假设机器 4 核心,如果不是可自行更改。写错了也不会影响构建结果

等待构建完成,看到这一句代表构建完成:

将编译好的 PostgreSQL 安装到 pghome 中:

代码语言:javascript
复制
make install

安装成功的提示:

10. 运行

  1. 执行 initdb 初始化数据库:
  1. 执行以下命令启动 PostgreSQL 服务:pg_ctl -D $PGDATA -l $PGDATA/logfile start

(注意这里的指令和上图提示的指令不同)

  1. 执行 createdb 创建数据库,再执行 psql 进行连接: (这两个指令后面都可带参数来指定数据库名,不带则默认同用户名,建议不带参数。)

此时应该就可以正常使用了:

后记

  1. 这样安装后,PostgreSQL 本体会在 ~/PGDev/pghome 中(PGHOME),数据会在 ~/PGDev/data 中(PGDATA)。
  2. 后续如果对源代码作出修改,只需要在 ~/PGDev/postgresql-12.5 中再次执行 make 与 make install 即可。
  3. 建议使用 git 对 postgresql-12.5 文件夹进行版本管理,方便后续修改回退。
  4. 如果关闭了当前终端,打开新终端后需要先执行一次 source ~/PGDev/env-debug,否则会提示找不到 psql 等错误。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 准备 linux 环境/虚拟机/或Windows下使用wsl
  • 2. 登陆机器,拷贝 PGDev.zip 到用户文件夹~中
  • 3. 安装 unzip 和 libreadline-dev:
  • 4. 解压 PGDev.zip
  • 5. 进入 PGDev 文件夹,创建 pghome 与 data 文件夹,用于存储 PostgreSQL 本身以及 PostgreSQL 所产生的数据
  • 6. 使用 nano (或 vim/gedit 等其他编辑器) 编辑 env-debug 文件:
  • 7. 执行 source
  • 8. 执行 configure(autoconf)
  • 9. 构建 & 安装
  • 10. 运行
  • 后记
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档