zoukankan      html  css  js  c++  java
  • 【PG数据库】PG数据库的安装及连接方法

    一.PostgreSQL简介

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

    二.PostgreSQL环境的安装和配置

    2.1源码的下载

    PostgreSQL 14.0源码可以从PostgreSQL官网:https://www.postgresql.org/download/ 的下载区获取。获取之后将其解压。

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

     

    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

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

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

      命令2source /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.i686readline-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脚本,执行成功,问题得到解决。

  • 相关阅读:
    Atitit (Sketch Filter)素描滤镜的实现  图像处理  attilax总结v2
    JS设置cookie、读取cookie、删除cookie
    Atitit 图像处理30大经典算法attilax总结
    Atitit数据库层次架构表与知识点 attilax 总结
    Atitit 游戏的通常流程 attilax 总结 基于cocos2d api
    Atitti css transition Animation differ区别
    Atitit 图像清晰度 模糊度 检测 识别 评价算法 源码实现attilax总结
    Atitit 全屏模式的cs桌面客户端软件gui h5解决方案 Kiosk模式
    Atitit 混合叠加俩张图片的处理 图像处理解决方案 javafx blend
    Atitit  rgb yuv  hsv HSL 模式和 HSV(HSB) 图像色彩空间的区别
  • 原文地址:https://www.cnblogs.com/coreLeo/p/15633054.html
Copyright © 2011-2022 走看看