在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
在Linux Ubuntu上源码编译postgresql环境_第1张图片
在Linux Ubuntu上源码编译postgresql环境_第2张图片
一、解压文件。将下载后的安装包放到需要安装的文件夹下,运行命令行。

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编译环境。
在Linux Ubuntu上源码编译postgresql环境_第3张图片
解决方案: 行命令sudo apt install gcc安装c的编译环境,运行中遇到Y/n直接默认Y即可,安装成功如下所示。

运行命令sudo apt install gcc安装c的编译环境,运行中遇到Y/n直接默认Y即可,安装成功如下所示。之后即可正常执行./configure
在Linux Ubuntu上源码编译postgresql环境_第4张图片

报错2:configure: error: readline library not found
在Linux Ubuntu上源码编译postgresql环境_第5张图片
解决方案: 根据提示,应该是没有安装 readline包。所以执行命令sudo apt install libreadline-dev,完成安装。
在Linux Ubuntu上源码编译postgresql环境_第6张图片
报错3:configure: error: zlib library not found;
在这里插入图片描述
解决方案:根据提示,应该是没有安装 zlib包。分别执行两条命令进行安装。

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

在Linux Ubuntu上源码编译postgresql环境_第7张图片
在Linux Ubuntu上源码编译postgresql环境_第8张图片
最终成功执行./configure命令后结果如下(无报错):
在Linux Ubuntu上源码编译postgresql环境_第9张图片

(2)执行make,开始编译,耗时大概3-5min
在Linux Ubuntu上源码编译postgresql环境_第10张图片

报错1:command 'make' not found,but can be installed with:
在Linux Ubuntu上源码编译postgresql环境_第11张图片
解决方案:执行sudo apt-get install make,输入用户密码后安装,完成之后重新执行make命令。
在Linux Ubuntu上源码编译postgresql环境_第12张图片
最终成功执行make命令后结果如下(无报错),完成后会提示:All of PostgresQL successfully made. Ready to install.
在Linux Ubuntu上源码编译postgresql环境_第13张图片

(3)执行su,切换到root

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

解决方案:输入sudo passwd root,输入新密码即可
在Linux Ubuntu上源码编译postgresql环境_第14张图片
成功执行完su:
在Linux Ubuntu上源码编译postgresql环境_第15张图片
(4)执行make install:成功,提示PostgresQL installation complete.表示postgres已经编译安装完成。
在Linux Ubuntu上源码编译postgresql环境_第16张图片
在Linux Ubuntu上源码编译postgresql环境_第17张图片
(5)建立一个系统用户 postgres ,执行adduser postgres, 需要输入密码,密码自定,可为123456。若提示changing user information,不做额外修改,可以直接回车默认。
在Linux Ubuntu上源码编译postgresql环境_第18张图片

(6)执行:

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

在Linux Ubuntu上源码编译postgresql环境_第19张图片
(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数据库

在Linux Ubuntu上源码编译postgresql环境_第20张图片
在Linux Ubuntu上源码编译postgresql环境_第21张图片
这里表示pgsql服务已经启动,接下来尝试创建测试数据库test,并打开。
在Linux Ubuntu上源码编译postgresql环境_第22张图片
进入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接入。
在Linux Ubuntu上源码编译postgresql环境_第23张图片
执行命令vim /usr/local/pgsql/data/postgresql.conf:该命令为修改postgresql.conf配置文件。

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

若异常退出vim编辑器,再次进入时候会出现如下提示,这是由于已经打开但未闭关的文件,会在其目录下出现一个.swp的文件,由于是属于隐藏文件,可以用命令ls -a对其进行查看。需要将该swp文件进行删除,命令为rm -rf .pg_hba.conf.swp
在Linux Ubuntu上源码编译postgresql环境_第25张图片
在Linux Ubuntu上源码编译postgresql环境_第26张图片
(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地址。
在Linux Ubuntu上源码编译postgresql环境_第27张图片
在Linux Ubuntu上源码编译postgresql环境_第28张图片
如图所示,ip地址即为172.22.17.68 , 外部在Windows系统下打开Navicat或者pgadmin,输入ip和密码即可完成连接。后续数据库导入工作直接外部完成即可。
在Linux Ubuntu上源码编译postgresql环境_第29张图片
在Linux Ubuntu上源码编译postgresql环境_第30张图片
另:本教程的linux环境为windows子系统,通过wsl重新进入系统,进入pgsql的方法如下:
在Linux Ubuntu上源码编译postgresql环境_第31张图片
(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目录了。
在Linux Ubuntu上源码编译postgresql环境_第32张图片
在Linux Ubuntu上源码编译postgresql环境_第33张图片


你可能感兴趣的:(postgresql,ubuntu,linux)