分享

PostgreSQL源码编译安装与配置

 highoo 2019-05-19

    环境说明:

    1. 操作系统

    

    2. 必须的依赖工具库

    2.1 make版本3.80或以上

    

    2.2 GCC编译器

    2.3 GNU Readline库:它允许psql记住你输入的每个命令,这样就可以通过上下方向键快速输入之前的命令,默认开启,也可以通过编译参数--without-readline来禁止它,建议保留默认。

    2.4 Zlib库

    3. 下载源码包,下载地址

    4. 开始安装

    4.1 基础依赖安装

    sudo yum install -y readline readline-devel openssl openssl-devel zlib zlib-devel

    4.2 生成makefile文件

    ./configure --prefix=/home/linjk/usr/postgresql

    成功:

    

    4.3 编译 :  make

    

    4.4 安装 : make install

    

    4.5 配置环境变量 (vim ~/.bash_profile)

    

    (为了统一,后面改为PGHOME,这就不重新截图了)

    4.6 目录授权

    mkdir /home/linjk/usr/postgresql/data

    sudo chown -R linjk:linjk /home/linjk/usr/postgresql/

    4.7 初始化数据库

    

    看看数据文件夹目录:

    

    base目录是表空间目录,global目录是相关全局变量目录, pg_hba.conf是访问控制配置文件,postgresql.conf是postgresql主配置文件。

    修改pg_hba.conf:

    

    修改为如下(0.0.0.0/0表示信任来自所有id连接的客户端,加密方式才有md5):

    

    修改postgresql.conf:

    

    localhoat改为*,表示监听所有网络连接。

    连接参数保持默认:

    

    4.8 防火墙开放端口

    sudo firewall-cmd --zone=public --add-port=5432/tcp --permanent

    sudo firewall-cmd --reload

    4.9 启动

    4.10 

    在4.7步初始化数据库时,提示了启动方式,注意有一个logfile,这里在安装目录增加一个文件夹log,用来记录日志:

    

    启动:

    

   关闭:

    pg_ctl -D /home/linjk/usr/postgresql/data/ -l /home/linjk/usr/postgresql/log/server.log stop

   4.11 配置

    这里使用psql命令行交互式客户端工具去连接postgresql,它类似与Oracle的命令行工具sqlplus,也可以使用图形交互界面pgAdmin4,后面会介绍如何安装。连接数据库的格式:

    psql -h {主机名或IP地址} -p {端口} {数据库名称} {用户名称}

    这些参数也可以通过环境变量指定:

    PGDATABASE、PGHOST、PGPORT、PGUSER

    指定了环境变量,后面直接运行psql命令即可直接连接指定的数据库。

    连接时提示如下错误:

    

    为什么会出现这个错误?因为在安装PostgreSQL时,会建立一个与初始化数据库时擦用户名的同名数据库用户,同时,这个用户就是数据库的超级用户,在这个用户登录时执行的是操作系统认证,所以不需要用户名和密码(如也需密码认证,可修改文件pg_hba.conf),之前用的linjk用户初始化,没有建立数据库linjk,因此,这里首先新建一个linjk名称的数据库。

    创建一个名为linjk的数据库:

    

    再次连接可登录成功,注意,此时密码为空,需要设置密码,输入\password可设置密码(psql的命令以斜杠'\'开头):

    

    输入\l可以查看所有数据库列表:

    

    template0和template1是模板数据库,用户在建数据库时,默认从模板数据库template1克隆出来的,因此,我们可以定制template1数据库中的内容,如增加公共的表或函数,这样后续创建的新库也有拥有这些表或函数,相比于template1数据库,template0数据库是最简化的数据库。

    输入\d可查看数据库中的所有表。

    输入\c {数据库名} 可切换当前使用的使用数据库。

    输入\q可退出登陆。

--------------------------------------------------------------------------------------------------------------------

    4.12 安装Web管理工具pgAdmin4

    A. 下载

    

            注意,服务器需要有python环境,linux服务器一般都默认安装了python和pip了

      B. 安装

        sudo pip install --upgrade pip

        sudo pip install pgadmin4-3.0-py2.py3-none-any.whl

        报错:

        

    sudo yum install -y python-devel

    再次安装,成功:

       

      C. 配置

        cd /usr/lib/python2.7/site-packages/pgadmin4

       sudo python pgAdmin4.py

        配置账号信息:

        

    这样应该后台方式启动: sudo python pgAdmin4.py &

    D 登陆

    

    E 添加数据库监控

    点击"Add New Server",输入pg数据库的连接信息即可:

    

    F 数据库添加扩展,以dblink为例

    

    在弹出的窗口中没有任何扩展,需要安装:

    进入postgresql源码目录,如下:

    

    注意,事先在源码根目录configure过生成makefile及make过一次的。

    执行make和make install:

    

在pg的安装目录下的lib子目录生成dblink的动态链接库dblink.so:

   

    这时候在pgAdmin4管理页面就能选择到dblink扩展了:

    

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多