【PostgreSQL内核学习(一)—— Ubuntu源码安装PostgreSQL】

该文详细介绍了如何在Ubuntu上通过源码安装PostgreSQL10.1,包括下载压缩包、解压、安装依赖、编译和安装步骤,以及初始化数据库、启动服务等关键操作。在安装过程中,提到了可能出现的问题及解决方案,如解决依赖冲突、修改源码文件和设置数据目录权限等。
摘要由CSDN通过智能技术生成

1. PostgreSQL官网下载压缩包

下载地址:https://www.postgresql.org/ftp/source/v10.1/

在这里插入图片描述

2. 解压&安装

2.1 解压文件

执行命令:

tar zxvf postgresql-10.1.tar.gz

在这里插入图片描述
解压成功后显示:
在这里插入图片描述

2.2 安装依赖

sudo apt-get install libreadline-dev
sudo apt-get install zlib1g-dev
sudo apt-get install gcc

出现问题:
在这里插入图片描述
解决方法:执行以下命令。

sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
sudo rm /var/cache/apt/archives/lock

2.3 执行安装

执行命令:

./configure --prefix=/opt/postgresql/10 --enable-debug --enable-cassert
make
make install

注意:如果希望后续在gdb时可以查看代码,则需要添加–enable-debug

make时出现错误:
在这里插入图片描述
解决方法:找到copy_fetch.c文件。
文件路径如下:/home/jia/pg_server/postgresql-10.1/src/bin/pg_rewind/copy_fetch.c
也可以使用命令:sudo find / -name copy_fetch.c来查找
copy_fetch.c文件中的copy_file_range修改为copy_file_chunk

2.4 执行安装

root下创建postgres用户和数据目录,并修改权限

adduser postgres
mkdir -p /opt/postgresql/10/data
chown -R postgres:postgres /opt/postgresql/10/data
chmod -R go-rwx /opt/postgresql/10/data

注意:data文件权限过大将会无法启动数据库服务
解决办法:chmod -R 0700 data/

2.5 添加路径到文件

su postgres
nano ~/.bashrc

将下面路径添加到文件中

export PATH=/opt/postgresql/10/bin:$PATH
export PGDATA=/opt/postgresql/10/data
export PGHOME=/opt/postgresql/10
export LANG=zh_CN.UTF-8
export PGPORT=5432

最后记得source一下:

source ~/.bashrc

3. 初始化数据库与使用

3.1 初始化数据库

initdb -D /opt/postgresql/10/data --locale=zh_CN.UTF8

在这里插入图片描述

3.2 启动数据库服务

pg_ctl -D /opt/postgresql/10/data -l logfile start

在这里插入图片描述
如果启动失败如下所示:
在这里插入图片描述
执行命令:lsof -i:5432查看端口占用情况
在这里插入图片描述
使用kill命令杀死进程即可释放端口
在这里插入图片描述

3.3 启动数据库

在这里插入图片描述
注:\q表示退出。

致谢:分别参考了以下博客

  1. https://blog.csdn.net/gbz2000/article/details/114817892
  2. https://rng-songbaobao.blog.csdn.net/article/details/103110090
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值