项目中要用PostgreSQL,所以专门学习了一下如何安装和调试postgresql,此博文用来记录自己的安装和调试过程,安装环境是centos7。

首先尝试了yum安装,因为毕竟yum安装简单粗暴,官网的安装指导地址:

https://www.postgresql.org/download/linux/redhat/

安装了半天,报错,以为是自己的yum源有问题,换了几个,还是不行,所以只能放弃这种安装方式。

接下来尝试源码编译安装,我们首先从官网取Source,官网在这里:

https://www.postgresql.org/ftp/source/

打开如下:

目前已经最新的版本已经到10了,但最新的稳定版是9.6,所以我下载就是9.6这个版本,执行下面命令下载:

wget https://www.postgresql.org/ftp/source/v9.6.2/

取到source后,准备开始编译安装。

这里需要注意的postgresql编译需要预装一些工具。除了make、gcc(GNU编译器套件)这些基本必备的工具,还要有zlib、bison等等,也不用提前装,反正安装过程中缺少什么再装就好了。

取到源码,先解压:

tar -zxvf postgresql-9.6.2.tar.gz

进入postgresql-9.6.2文件夹:

再执行下面指令:

export CFLAGS = "-g -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels -Wformat-security
-fno-strict-aliasing -fwrapv"

然后再执行下列指令

./configure --prefix=/opt/psql --with-perl --with-tcl --with-python --with-openssl
--with-pam --without-ldap --with-libxml --with-libxslt --enable-thread-safety
--with-wal-blocksize=16 --with-blocksize=16 --enable-dtrace --enable-debug

其中--prefix是指定软件的安装路径,--with选项是指安装本文件依赖的库文件。如有不清楚可以自己学习下configure命令的相关参数。

运行之后,会出现报错,我这个报的错还挺多,我都贴上来,供大家参考一下:

问题1:
checking for dtrace... no
configure: error: dtrace not found
解决方法:
yum search dtrace
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile  * base: mirrors.163.com  * extras: mirrors.163.com  * updates: mirrors.163.com
=============================================================================================== Matched: dtrace ===============================================================================================
systemtap-sdt-devel.i686 : Static probe support tools
systemtap-sdt-devel.x86_64 : Static probe support tools  找到了,就安装,我是64位的,安装第二个
[root@localhost postgresql-9.3.5]# yum install -y systemtap-sdt-devel.x86_64  问题2:
checking for flags to link embedded Perl... Can't locate ExtUtils/Embed.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .).
BEGIN failed--compilation aborted.
no
configure: error: could not determine flags for linking embedded Perl.
This probably means that ExtUtils::Embed or ExtUtils::MakeMaker is not
installed.
解决方法:
yum install perl-ExtUtils-Embed -y  问题3:
configure: error: could not determine flags for linking embedded Perl.
This probably means that ExtUtils::Embed or ExtUtils::MakeMaker is not
installed.
解决方法:
yum install perl-ExtUtils-Embed  问题4:
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 isn't looking in the proper directory.
Use --without-readline to disable readline support.  解决方法:
yum install readline readline-devel  问题5:
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.
解决方法:
yum install zlib zlib-devel  问题6:
checking for CRYPTO_new_ex_data in -lcrypto... no
configure: error: library 'crypto' is required for OpenSSL
解决方法:
yum install openssl openssl-devel  问题7:
checking for pam_start in -lpam... no
configure: error: library 'pam' is required for PAM
解决方法:
yum install pam pam-devel  问题8:
checking for xmlSaveToBuffer in -lxml2... no
configure: error: library 'xml2' (version >= 2.6.23) is required for XML support
解决方法:
yum install libxml2 libxml2-devel  问题9:
checking for xsltCleanupGlobals in -lxslt... no
configure: error: library 'xslt' is required for XSLT support
解决方法:
yum install libxslt libxslt-devel  问题10:
configure: error: Tcl shell not found
解决方法:
yum install tcl tcl-devel  问题11:
checking for ldap.h... no
configure: error: header file is required for LDAP
解决方法:
yum install openldap openldap-devel  问题12:
checking for Python.h... no
configure: error: header file <Python.h> is required for Python
解决方法:
yum install python python-devel

以上这些依赖库都安装成功后,再运行上面的configure命令,就能成功啦。

接下来就是编译安装啦:

make && make install

这两个命令可能会比较慢,执行完成后,会提示成功。

然后你就会发现在/opt/目录下找到你安装的psql了

其中:

/opt/psql/bin里面放的是可执行命令,比如createdb之类的;

/opt/psql/lib里面放的是库文件;

/opt/psql/include里面放的是头文件;

/opt/psql/share是相关的资源文件。

这些文件如果在configure命令中没有指定--prefix的话,会安装到/usr/local/目录下,以后要删除的时候就要一个个找了,比较麻烦。

好的 我们安装好了postgresql程序,接下来进行配置。

为了安全考虑,postgresql不允许使用root用户操作数据库,我们在系统中为使用postgresql添加一个用户postgres:

adduser postgres

创建密码:

passwd postgres

然后切换到postgres用户下面:

su - postgres

编辑/home/postgres下的.bash_profile

设置以下的环境变量

export PGHOME=/opt/psql  (这个就是我们的安装目录)export PGDATA=~/data        (数据存放的目录,这个看你高兴了,不要求一定放在这里)export PATH=$PATH:$HOME/bin:$PGHOME/bin

然后source一下

source  ~/.bash_profile

使环境变量生效。

接下来初始化数据库,使用initdb命令(如果提示command not found,那么很有可能是你上面的PGHOME设置错误或者没有source一下)

#初始化数据库
initdb

数据库的初始化完成后运行:

pg_ctl start

启动postgres数据库实例。此时你就可以使用:

ps -ef | grep postgres

现在我们可以进入数据库,使用如下命令:

psql -h 127.0.0.1 -d postgres -U postgres

  

如果我们比较懒,不想每次登录手动启动psql,那么设置下psql开机启动。

PostgreSQL的开机自启动脚本位于PostgreSQL源码目录的contrib/start-scripts路径下:

  

linux文件即为自启动脚本。

1)修改linux文件属性,添加X属性(这里如果提示无权限的话,切换到root用户进行操作)

chmod a+x linux

2) 复制linux文件到/etc/init.d目录下,更名为postgresql

cp linux /etc/init.d/postgresql

3)修改/etc/init.d/postgresql文件的两个变量

prefix设置为postgresql的安装路径:/opt/psql

PGDATA设置为postgresql的数据目录路径:/home/postgres/data

执行service postgresql start,就可以启动PostgreSQL服务

4) 执行service postgresql start,就可以启动PostgreSQL服务

service postgresql start

5)设置postgresql服务开机自启动

chkconfig --add postgresql

执行上面的命令,就可以实现postgresql服务的开机自启动。

接下来就是PostgreSQL的远程连接设置

1) 设置远程访问认证机制

编辑/home/postgres/PGHOME/pg_dat/pg_hba.conf 文件:

说明:

每一行有五个字段,

# TYPE DATABASE USER CIDR-ADDRESS METHOD

分别是:连接类型、可使用的数据库名、使用者、DIDR地址、和验证方法等五项。

在该配置文件中的加上图中最后两行 IPv4 remote connections的配置,把该网段的IP配置进去,就可以。

2. 改监听地址

默认下,POSTGRESQL只接受本地服务,要接受远程服务,需改postgresql.conf 文件listen_address = *

配置完后,重新启动一下数据库,既可以进行远程访问数据库了。

以上是我安装配置PostgreSQL的大概过程,后续遇到的问题会在文章中持续更新,有错误欢迎提出指正,谢谢~

转载于:https://www.cnblogs.com/dengyulinBlog/p/6424462.html

PostgreSQL数据库的安装与配置相关推荐

  1. Oracle数据库的安装和配置

    我们今天开始学习ORACLE,ORACLE来学习SQL和PL/SQL,前一个阶段我们已经学习了JAVA基础,Java基础是我们学习的第一个阶段,有了JAVA语言,JAVA应用程序,我们就可以访问WEB ...

  2. 数据库 | MySQL安装与配置

    数据库 | MySQL安装与配置图解 数据库(目前理解) 说在前面的话 MySQL-5 5.27-win32安装过程 MySQL-5 5.27-win32配置过程 说在后面的话 数据库(目前理解) 数 ...

  3. 一、Oracle数据库的安装和配置

    一.Oracle数据库的安装和配置 Oracle 简介 Oracle 是殷墟出土的甲骨文(oracle bone inscriptions)的英文翻译的第一个单词 Oracle 公司是全球最大的信息管 ...

  4. 数据库 - MySql 安装与配置

    数据库 - MySql 安装与配置 数据库介绍 定义 分类 MySql 安装配置 Windows 下安装 配置环境变量: 配置 MySql 初始化文件: 初始化MySql: 安装MySql服务: 运行 ...

  5. linux学习之centos(三):mysql数据库的安装和配置

    前言:mysql简介 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库, ...

  6. 【MySQL】MySQL数据库的安装和配置

    [MySQL]MySQL数据库的安装和配置 前言 MySQL数据库的安装和配置 一.下载 因为MySQL安装包版本安装和配置起来不太方便,本文讲述免安装版,功能效果与安装版是一样的! 请在这里下载免费 ...

  7. 在虚拟机(centos)配置postgresql数据库(1) - 安装篇

    一.安装 参考: http://zhidao.baidu.com/link?url=XZQH28IBTUK--2109zwxNKGoMFfZ_xCYS9VUt8iRX0APcadfTG1OabjSyE ...

  8. Windows下Postgresql数据库的下载与配置

    本文方法介绍的是windows系统中postgresql二进制压缩包的安装及配置.下载地址:下载地址 执行下列步骤前,暂作以下假定: PostgreSQL拟装在d:\postgresql 数据库以后拟 ...

  9. MySQL 最新8.0版本windows系统下数据库的安装、配置与使用实例演示,客户端使用ip连接数据库失败问题处理

    MySQL 8.0版本数据库安装与配置演示 第一章:安装与配置 ① 下载与安装 ② 配置环境变量 ③ 配置 mysql 的 my.ini 文件 ④ 初始化与重置密码 第二章:问题解决 ① MySQL ...

最新文章

  1. Android, BaseAdapter 处理大数据量时的优化
  2. 全球超2万名开发者调研:Python 3渗透率至84%
  3. 关系抽取论文总结(relation extraction)不断更新
  4. 微服务限流Sentinel讲解(一)
  5. SaaS CRM系统存在的五大安全漏洞
  6. Java中整型的缓存机制
  7. 为什么kill进程后socket一直处于FIN_WAIT_1状态
  8. linux未知设备驱动程序,未知Android设备 - linux mint
  9. java吧 博客系统_【Java】SpringMVC + Mybatis 实现的个人博客系统
  10. Selenium自动化测试-8.iframe处理
  11. 【网络安全工程师面试合集】—常见端口扫描技术
  12. oracle ipad函数(从左边填充)
  13. 日历2021年日历表|2021年日历表打印版 Excel版
  14. java 汉字转拼音_java汉字转拼音
  15. 学会网页制作,web开发,你需要掌握这3个编程语言
  16. Jira BigPicture结合KanBan跟踪项目执行实践分享
  17. 将3D坐标转成2D坐标的方法
  18. 表格内容单/多行展示(一)- 单行/多行显示的方法
  19. 第七届蓝桥杯 2016年省赛真题(Java 大学C组)
  20. 利用rails与blueprint进行迅敏开发(第一部分)

热门文章

  1. python batch_size_Python config.batch_size方法代码示例
  2. 自旋锁 轻量锁_Java知识进阶-程序员升往架构师必经之路-自旋锁-知识铺
  3. grid studio python_Grid studio表格应用程序:Python的集大成者
  4. python在win10怎么搭建_Win10下Python环境搭建与配置教程
  5. 利用朴素贝叶斯算法识别垃圾邮件
  6. python分段线性插值_Python实现分段线性插值
  7. 嵌入式系统——指令操作扩展
  8. java 数据包含_java – 包含大量数据库表的通用实现
  9. Mysql分区表的使用
  10. spark SQL压缩入门