在Linux Ubuntu上源码编译postgresql环境

在Linux Ubuntu上配置postgresql环境

实现目标:需要在Linux上配置postgresql环境并且进行远程连接,通过编译pg源码的方式进行安装,Linux为全新无其他预安装软件,每一步都是自己实际安装中踩到的坑,亲测可用,具体步骤如下:

资源获取:pg源码安装包,所需版本为12.9。资源链接:PostgreSQL: Downloads,源码压缩包链接:PostgreSQL: File Browser。下载pgsql12.9版本: postgresql-12.9.tar.gz
在这里插入图片描述
在这里插入图片描述
一、解压文件。将下载后的安装包放到需要安装的文件夹下,运行命令行。

gunzip postgresql-12.9.tar.gz
tar xf postgresql-12.9.tar

参考链接:PostgreSQL: Documentation: 14: 17.3. Getting the Source

二、完成对压缩文件的解压后,在解压路径下,通过一系列安装命令进行安装:

./configure
make
su
make install
adduser postgres
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
su - postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
/usr/local/pgsql/bin/createdb test
/usr/local/pgsql/bin/psql test

(1)执行./configure,判断环境是否正确。执行中可能会遇到如下报错,解决一个报错后重新执行./configure,直到所有报错消失。

报错1:no acceptable c compiler found in $PATH,这是表明系统缺少c编译环境。
在这里插入图片描述
解决方案: 行命令sudo apt install gcc安装c的编译环境,运行中遇到Y/n直接默认Y即可,安装成功如下所示。

运行命令sudo apt install gcc安装c的编译环境,运行中遇到Y/n直接默认Y即可,安装成功如下所示。之后即可正常执行./configure
在这里插入图片描述

报错2:configure: error: readline library not found
在这里插入图片描述
解决方案: 根据提示,应该是没有安装 readline包。所以执行命令sudo apt install libreadline-dev,完成安装。
在这里插入图片描述
报错3:configure: error: zlib library not found;
在这里插入图片描述
解决方案:根据提示,应该是没有安装 zlib包。分别执行两条命令进行安装。

sudo apt-get install zlib1g
sudo apt-get install zlib1g.dev

在这里插入图片描述
在这里插入图片描述
最终成功执行./configure命令后结果如下(无报错):
在这里插入图片描述

(2)执行make,开始编译,耗时大概3-5min
在这里插入图片描述

报错1:command 'make' not found,but can be installed with:
在这里插入图片描述
解决方案:执行sudo apt-get install make,输入用户密码后安装,完成之后重新执行make命令。
在这里插入图片描述
最终成功执行make命令后结果如下(无报错),完成后会提示:All of PostgresQL successfully made. Ready to install.
在这里插入图片描述

(3)执行su,切换到root

**报错1:**输入密码后报错,原因:root用户没有设置密码
在这里插入图片描述

解决方案:输入sudo passwd root,输入新密码即可
在这里插入图片描述
成功执行完su:
在这里插入图片描述
(4)执行make install:成功,提示PostgresQL installation complete.表示postgres已经编译安装完成。
在这里插入图片描述
在这里插入图片描述
(5)建立一个系统用户 postgres ,执行adduser postgres, 需要输入密码,密码自定,可为123456。若提示changing user information,不做额外修改,可以直接回车默认。
在这里插入图片描述

(6)执行:

mkdir /usr/local/pgsql/data   #建立一个存储数据的目录
chown postgres /usr/local/pgsql/data   # 将这个目录的所有者分配给 postgres 用户。

在这里插入图片描述
(7)初始化数据库:切换用户到 postgres: su - postgres,之后执行如下命令。

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data         #绑定数据库文件存储目录:
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start      #启动数据库
/usr/local/pgsql/bin/createdb test          #创建数据库test
/usr/local/pgsql/bin/psql test              #连接到test数据库

在这里插入图片描述
在这里插入图片描述
这里表示pgsql服务已经启动,接下来尝试创建测试数据库test,并打开。
在这里插入图片描述
进入test后即可执行一系列sql操作。

(8)设置pgsql远程链接:执行命令su - postgres,切换到postgres用户下.

执行命令vim /usr/local/pgsql/data/pg_hba.conf:该命令为修改pg_hba.conf配置文件,在IPV4 local connections下,添加一行为host all all 0.0.0.0/0 trust,表示允许所有ip接入。
在这里插入图片描述
执行命令vim /usr/local/pgsql/data/postgresql.conf:该命令为修改postgresql.conf配置文件。

将listen_address的原有的默认值localhost改为*,同时将addresses ='*' 和port = 5432的两行的注释打开,完成编辑后Esc+ :wq退出。
在这里插入图片描述
修改配置文件的方式:进入vim 编辑器后,按i进入编辑模式,移动光标到该插入的位置,输入完成后,按esc回退到命令模式,输入:wq,表示储存后退出。

若异常退出vim编辑器,再次进入时候会出现如下提示,这是由于已经打开但未闭关的文件,会在其目录下出现一个.swp的文件,由于是属于隐藏文件,可以用命令ls -a对其进行查看。需要将该swp文件进行删除,命令为rm -rf .pg_hba.conf.swp
在这里插入图片描述
在这里插入图片描述
(9)完成配置文件修改后,重新执行/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start或者restart,表示重启服务 。

(10)查看Ubuntu的ip地址ifconfig。若报错,执行sudo apt install net-tools,安装net-tools 工具。完成安装后再输入 ifconfig 命令,即可查看ip地址。
在这里插入图片描述
在这里插入图片描述
如图所示,ip地址即为172.22.17.68 , 外部在Windows系统下打开Navicat或者pgadmin,输入ip和密码即可完成连接。后续数据库导入工作直接外部完成即可。
在这里插入图片描述
在这里插入图片描述
另:本教程的linux环境为windows子系统,通过wsl重新进入系统,进入pgsql的方法如下:
在这里插入图片描述
(1)进入postgres用户:su - postgres

(2)启动pg服务:/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

(3)添加环境变量:查看版本psql --version 报错,此时要将postgresql的 bin 目录添加到环境变量中,因此执行 export PATH="/usr/local/pgsql/bin:$PATH",之后再执行psql命令即可,不用指定bin目录了。
在这里插入图片描述
在这里插入图片描述


  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值