【PG数据库】PG数据库的安装及连接方法

来源:这里教程网 时间:2026-03-14 20:41:24 作者:
  • 【PG数据库】PG数据库的安装及连接方法

    一. PostgreSQL 简介

    PostgrepSQL 是一种对象关系型数据库管理系统。

    二. PostgreSQL 环境的安装和配置

    2.1 源码的下载

    PostgreSQL 14.0 源码可以从 PostgreSQL 官网:

    源码目录内容,如下图所示:

     

    2.2  环境配置

    安装之前首先为系统配置环境,这个过程通过运行上图中的 configure 脚本文件即可 , 命令如下:

    ./configure

    注意:安装的时候,遇到两个问题,新环境高频出现,可以通过最后一章中的方法进行解决。

    2.3  编译

    配置好环境变量之后,对源码进行编译。 2.1 图中,可以看到已经有完整的 makefile 文件,在目录下执行下面的命令,进行编译:

    make clean all

    编译过程大约持续 5~30min

    2.4  回归测试

    如果想在安装文件前测试新编译的服务器,那么可以在这个时候运行回归测试。回归测试是一个用于验证 PostgreSQL 在你的系统上是否按照开发人员设想的那样运行的测试套件。通过下面命令执行:

    make check

    如果执行结果如下,代表检查通过:

     

    注意:这个命令只能在非特权用户下运行,不能在 root 权限下运行

    2.5  安装、卸载、清理文件

    1 )安装

    安装 PostgreSQL ,需要输入下面的命令:

    sudo make install

    由于 install 命令需要在 root 权限下执行,所以需要按上面的命令执行。

    2 )卸载

    如果想要卸载安装,则执行下面的命令即可,需要注意此命令不会删除任何创建出来的目录:

    sudo make uninstall

    (3)清理

    编译之前可以通过 make clean 命令,将之前的编译文件进行删除,避免对后续的编译产生影响。

    2.6  安装后进行设置

    2.6.1  创建用户

    root 用户不能启动 postgresql ,所以需要创建一个普通用户来启动数据库,如下图所以,创建用户并设置登录口令。注意:下面两条命令均需在 root 权限下执行。

    命令 1 $sudo useradd postgres

    没有其他输出,代表成功。

    命令 2 $sudo passwd postgres

    输入类似于这样的密码,可以成功 ht3pki2008!!

    如下图所示:

     

    2.6.2  设定权限

    postgresql 目录下创建目录 data (数据库存储)和 log (日志存储),然后将 postgresql 的目录权限全部赋予给 postgres 用户。

    命令 1 $sudo mkdir /usr/local/pgsql/data

    命令 2 $sudo mkdir /usr/local/pgsql/log

    命令 3 $sudo chown -R postgres:postgres /usr/local/pgsql

    2.6.3  共享库

    在一些有共享库的系统里,需要告知本地系统如何找到新安装的共享库。设置共享库的搜索路径的方法因平台而异,本机是 Linux 系统,因设置命令需要 root 权限,故在安装之后运行下面命令进行设置:

    sudo /sbin/ldconfig /usr/local/pgsql/lib

    设置后,可以在运行时,让链接器更快地找到共享库。

    2.6.4  环境变量

    1.  PG 添加到环境变量

    本机 PG 安装路径为 /usr/local/pgsql ,安装到此目录或者其他默认不在搜索路径中的地方,应该在本地的 PATH 环境变量里面增加一个 /usr/local/pgsql/bin

    上面的操作非必须,但可以在使用 PG 更方便。

    将下面的几行加到 shell 启动文件即可,如: ~./bash_profile ()如果想影响所有用户就放在 /etc/profile ):

    export PGDATA=/usr/local/pgsql/data

    export PGHOME=/usr/local/pgsql

    export PATH=$PGHOME/bin:$PATH

    注意: /etc/profile 文件需要 root 权限操作,所以在修改的时候可以使用 sudo vim /etc/profile ,打开文件修改。

    2.  man 文档添加到环境变量

    为了让系统找到 man 文档,将下面的内容添加到 shell 启动文件里:

    MANPATH=/usr/local/pgsql/share/man:$MANPATH

    export MANPATH

    修改完成后,使用下面的命令使其生效:

    命令 1 sudo -s (切换到 root 权限)

      命令 2 source /etc/profile

    2.6.5  初始化数据库

    切换为 postgres 用户,使用 initdb --help 可以看到初始化数据库的帮助信息,如下图所示:

    命令 1 $initdb --help

     

    图中红框中文字所示,由于之前在配置文件中已经设定了环境变量 PGDATA ,因此可以直接使用命令 initdb 来完成数据库初始化操作。

    首先,切换到 postgres 用户,命令: #su - postgres

    然后,初始化数据库,命令: $initdb

    如果出现下面的结果,代表初始化成功:

    此时,可以发现 /usr/local/pgsql/data 中已经有文件了,代表已经初始化成功。

    2.6.6  配置数据库

    首先,进入 /usr/local/pgsql/data 目录,使用命令 vim pg_hba.conf, 配置对数据库的访问控制(设置为可以通过密码访问)。如下图所示:

     

    然后,使用命令 vim postgresql.conf, 配置数据库参数(设置服务器监听整个网络,设置端口号为 5432 )。如下图所示:

     

    2.6.7  关闭防火墙( root 用户)

    使用命令 systemctl status firewalld.service 查看防火墙状态,如图 13 所示:

     

    通过上图可知,防火墙属于关闭状态。

    如果查看到防火墙处于开启状态,如下图:

     

    若想将其关闭,使用命令 sudo systemctl stop firewalld.service 关闭防火墙。( ps :使用命令 systemctl disable firewalld.service, 可以停用防火墙开机自启)

    2.6.8  配置系统服务( root 用户)

    进入 postgresql 源码包的解压目录(本文为 /home/10318001@zte.intra/Desktop/ 王泽辉的工作空间 /postgreSQL 源码 /postgresql-14.0 ),执行命令

    cp contrib/start-scripts/linux /etc/init.d/postgresql

    然后执行 vim /etc/init.d/postgresql ,查看配置信息是否如下图所示,若不同,请按下面的方式配置:

     

    然后使用命令 chmod +x /etc/init.d/postgresql (需在 root 权限下执行),赋予该文件执行权限。另外,还可以使用命令 chkconfig --add postgresql (需在 root 权限下执行),设置服务开机自启。

    2.6.9  启动及链接数据库

    1.  启动数据库服务

    使用命令 #service postgresql start (需要 root 权限) , 启动数据库服务。可以通过命令: $sudo ps -ef | grep postgres ,查看 postgres 相关进程,如下图所示:

     

     

    3. 链接数据库

    通过上述方法启动数据库后,便可通过 postgresql 自带的客户端工具 psql 来进行链接( psql 二进制文件在 /usr/local/pgsql/bin, 因为已经配置环境变量,所以全局也可执行)。

    请按如下的步骤进行操作:

    (1) 在 postgresql 用户下直接输入命令 :$psql ,看到版本信息则说明链接成功。

    (2) 然后,使用” \password, 设置密码。如下图所示:

     

    (3) 验证非本地客户端工具的链接。

    最后也是最重要的一步,就是验证非本地客户端工具的连接。本文选择的工具是 Navicat Premium, 在主机( Window10 )打开 Navicat 与虚拟机中的 postgresql 服务器进行连接测试,如下图所示:

     

    (4) 停止数据库连接服务

    若想停止数据库服务,可以在 root 权限下执行命令 :#service postgresql stop

    总结:以上就是 linux 环境下源码编译安装 PostgreSQL 的全过程。

    十. 错误及解决办法

    10.1  安装 PG 时,执行 configure 脚本报错

    问题一:

    1.  安装前,执行 configure 配置文件时,报下面错误

    configure: error: readline library not found If you have readline already installed, see config.log for details on the failure.  It is possible the compiler isnt looking in the proper directory. Use --without-readline to disable readline support.

    2. 解决办法

    (1)根据提示是没有安装 readline 包,首先检查是否安装 readline

     

    由上可知,系统中已经安装了 readline 包。

    (2)通过 yum 查询 readline 包,观察都有哪些相关的包

    由上可知, readline-devel.i686 readline-devel43.i386 可能未安装,尝试安装 readline-devel 包。

    3 )尝试安装 readline-devel

    注意,执行这个安装命令,需要在 root 权限下安装,用下面命令即可。

     

    显示“完毕”之后,即代表安装完成。

    (3)再次执行 configure 脚本,即可通过。

    问题二:

    1. 安装前执行 configure 脚本,报下面的错误

    checking for inflate in -lz... no

    configure: error: zlib library not found

    If you have zlib already installed, see config.log for details on the

    failure.  It is possible the compiler isn't looking in the proper directory.

    Use --without-zlib to disable zlib support.

    2. 解决办法

    (1)首先检查系统中是否安装 zlib

     

    (2)通过 yum 查看 zlib 包,查看哪些包缺失

     

    通过上述查看可知, zlib-devel 需要安装。

    (3)安装 zlib-devel

    由于安装需要 root 权限,采用下面的命令安装即可,如下图:

     

    4 )继续执行 configure 脚本,执行成功,问题得到解决。

  • 转自:ht tp://t.zoukan kan.c om/coreLeo-p-15633054.ht ml

  • 相关推荐