文档章节

Linux 下安装Postgresql

Splace
 Splace
发布于 2016/06/13 19:53
字数 2059
阅读 516
收藏 6
点赞 1
评论 0

环境:Linux localhost.localdomain 2.6.32-431 GNU/Linux x86_64

Postgresql版本:postgresql.9.5.3

 

1.下载postgresql

    因bz2格式包格式比较小,故选择该格式下载。地址:https://www.postgresql.org/ftp/source/v9.5.3/

2.安装:

2.1 解压:

tar jxvf postgresql-9.5.3.tar.bz2

2.2 安装:

查看INSTALL文件说明安装过程。

[root@localhost postgresql-9.5.3]# less INSTALL
                  PostgreSQL Installation from Source Code

   This document describes the installation of PostgreSQL using the source
   code distribution. (If you are installing a pre-packaged distribution,
   such as an RPM or Debian package, ignore this document and read the
   packager's instructions instead.)
     __________________________________________________________________

                                Short Version

./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/postgres -D /usr/local/pgsql/data >logfile 2>&1 &
/usr/local/pgsql/bin/createdb test
/usr/local/pgsql/bin/psql test
...

2.2.1 编译

在编译过程中可以指定安装目录与wal日记大小等。编译过程过程中如遇其他问题(可能是依赖库的问题),解决以后重新编译即可。关于编译指定参数与编译过程中可能碰到的问题可参考该博文

[root@localhost postgresql-9.5.3]# ./configure --prefix=/usr/local/pgsql9.5.3 --with-pgport=5432 --with-wal-blocksize=64
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking which template to use... linux
checking whether to build with 64-bit integer date/time support... yes
checking whether NLS is wanted... no
checking for default port number... 5432
checking for block size... 8kB
checking for segment size... 1GB
checking for WAL block size... 64kB
checking for WAL segment size... 16MB
checking for gcc... gcc
.......
checking whether gcc supports -Wl,--as-needed... yes
configure: using compiler=gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
configure: using CFLAGS=-Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -O2
configure: using CPPFLAGS= -D_GNU_SOURCE 
configure: using LDFLAGS=  -Wl,--as-needed
configure: creating ./config.status
config.status: creating GNUmakefile
config.status: creating src/Makefile.global
config.status: creating src/include/pg_config.h
config.status: creating src/include/pg_config_ext.h
config.status: creating src/interfaces/ecpg/include/ecpg_config.h
config.status: linking src/backend/port/tas/dummy.s to src/backend/port/tas.s
config.status: linking src/backend/port/dynloader/linux.c to src/backend/port/dynloader.c
config.status: linking src/backend/port/sysv_sema.c to src/backend/port/pg_sema.c
config.status: linking src/backend/port/sysv_shmem.c to src/backend/port/pg_shmem.c
config.status: linking src/backend/port/unix_latch.c to src/backend/port/pg_latch.c
config.status: linking src/backend/port/dynloader/linux.h to src/include/dynloader.h
config.status: linking src/include/port/linux.h to src/include/pg_config_os.h
config.status: linking src/makefiles/Makefile.linux to src/Makefile.port

2.2.2 安装:make & make install

[root@localhost postgresql-9.5.3]# make 
make -C src all
make[1]: Entering directory `/home/ceg/postgresql-9.5.3/src'
make -C common all
make[2]: Entering directory `/home/ceg/postgresql-9.5.3/src/common'
make -C ../backend submake-errcodes
make[3]: Entering directory `/home/ceg/postgresql-9.5.3/src/backend'
prereqdir=`cd 'utils/' >/dev/null && pwd` && \
          cd '../../src/include/utils/' && rm -f errcodes.h && \
          ln -s "$prereqdir/errcodes.h" .
make[3]: Leaving directory `/home/ceg/postgresql-9.5.3/src/backend'
...
lm  -o pg_regress
cp ../../../contrib/spi/refint.so refint.so
cp ../../../contrib/spi/autoinc.so autoinc.so
make[2]: Leaving directory `/home/ceg/postgresql-9.5.3/src/test/regress'
make[1]: Leaving directory `/home/ceg/postgresql-9.5.3/src'
make -C config all
make[1]: Entering directory `/home/ceg/postgresql-9.5.3/config'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/ceg/postgresql-9.5.3/config'
All of PostgreSQL successfully made. Ready to install.

[root@localhost postgresql-9.5.3]# make install
make -C src install
make[1]: Entering directory `/home/ceg/postgresql-9.5.3/src'
make -C common install
make[2]: Entering directory `/home/ceg/postgresql-9.5.3/src/common'
make -C ../backend submake-errcodes
make[3]: Entering directory `/home/ceg/postgresql-9.5.3/src/backend'
make[3]: Nothing to be done for `submake-errcodes'.
make[3]: Leaving directory `/home/ceg/postgresql-9.5.3/src/backend'
.....
/bin/mkdir -p '/usr/local/pgsql9.5.3--with-pgport=5432/lib/pgxs/config'
/usr/bin/install -c -m 755 ./install-sh '/usr/local/pgsql9.5.3--with-pgport=5432/lib/pgxs/config/install-sh'
/usr/bin/install -c -m 755 ./missing '/usr/local/pgsql9.5.3--with-pgport=5432/lib/pgxs/config/missing'
make[1]: Leaving directory `/home/ceg/postgresql-9.5.3/config'
PostgreSQL installation complete.

3.创建数据库集群

 3.1创建用户,用以配置环境变量与初始化数据库等。

[root@localhost pgsql9.5.3]# useradd postgres
[root@localhost pgsql9.5.3]# su - postgres
[postgres@localhost ~]$ 

 3.2 创建数据库集群

   3.2.1 创建数据目录,并给postgres用户以权限

[root@localhost pgsql9.5.3]# mkdir data
[root@localhost pgsql9.5.3]# ll
总用量 20
drwxr-xr-x. 2 root root 4096 6月  13 11:17 bin
drwxr-xr-x. 2 root root 4096 6月  13 14:38 data
drwxr-xr-x. 6 root root 4096 6月  13 11:17 include
drwxr-xr-x. 4 root root 4096 6月  13 11:17 lib
drwxr-xr-x. 6 root root 4096 6月  13 11:17 share
[root@localhost pgsql9.5.3]# pwd
/usr/local/pgsql9.5.3
[root@localhost pgsql9.5.3]# chown -R postgres:postgres /usr/local/pgsql9.5.3/data

    3.2.2 配置环境变量

     在postgresql用户下配置环境变量只对postgres用户有效,如要对所有用户有效,配置profile。

[root@localhost ~]# su - postgres
[postgres@localhost ~]$ less ~/.bash_profile
# .bash_profile

...

export PATH=/usr/local/pgsql9.5.3/bin:$PATH
LD_LIBRARY_PATH=/usr/local/pgsql9.5.3/lib
export LD_LIBRARY_PATH
export PGDATA=/usr/local/pgsql9.5.3/data
....

[postgres@localhost ~]$ source ~/.bash_profile
[postgres@localhost ~]$ 

    3.2.3 初始化

[root@localhost ~]# su - postgres
[postgres@localhost ~]$ echo $PGDATA
/usr/local/pgsql9.5.3/data
[postgres@localhost ~]$ pwd
/home/postgres
[postgres@localhost ~]$ /usr/local/pgsql9.5.3/bin/initdb -E UTF8 -D $PGDATA  --locale=C -U postgres -W 
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "C".
The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /usr/local/pgsql9.5.3/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
creating template1 database in /usr/local/pgsql9.5.3/data/base/1 ... ok
initializing pg_authid ... ok
Enter new superuser password:         --note:postgres
Enter it again: 
setting password ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating collations ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
loading PL/pgSQL server-side language ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok
syncing data to disk ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

    /usr/local/pgsql9.5.3/bin/pg_ctl -D /usr/local/pgsql9.5.3/data -l logfile start

4. 启动数据库

    4.1 配置postgresql.conf 和 pg_hba.conf。

    4.2 启动数据库

[root@localhost ~]# su - postgres
[postgres@localhost data]$ pg_ctl start -D $PGDATA
server starting
[postgres@localhost data]$ LOG:  redirecting log output to logging collector process
HINT:  Future log output will appear in directory "pg_log".

[postgres@localhost data]$ 
[postgres@localhost data]$ ps -ef|grep post
root     10092   367  0 15:32 pts/5    00:00:00 su - postgres
postgres 10093 10092  0 15:32 pts/5    00:00:00 -bash
postgres 11277     1  0 15:37 pts/5    00:00:00 /usr/local/pgsql9.5.3/bin/postgres -D /usr/local/pgsql9.5.3/data
postgres 11278 11277  0 15:37 ?        00:00:00 postgres: logger process                                        
postgres 11280 11277  0 15:37 ?        00:00:00 postgres: checkpointer process                                  
postgres 11281 11277  0 15:37 ?        00:00:00 postgres: writer process                                        
postgres 11282 11277  0 15:37 ?        00:00:00 postgres: wal writer process                                    
postgres 11283 11277  0 15:37 ?        00:00:00 postgres: autovacuum launcher process                           
postgres 11284 11277  0 15:37 ?        00:00:00 postgres: stats collector process 

    4.3 登录数据库  

[root@localhost pgsql9.5.3]# su - postgres
[postgres@localhost ~]$ psql
psql (9.5.3)
Type "help" for help.

postgres=# \d
No relations found.
postgres=# \l
                             List of databases
   Name    |  Owner   | Encoding | Collate | Ctype |   Access privileges   
-----------+----------+----------+---------+-------+-----------------------
 postgres  | postgres | UTF8     | C       | C     | 
 template0 | postgres | UTF8     | C       | C     | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres
 template1 | postgres | UTF8     | C       | C     | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres
(3 rows)

postgres=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of 
-----------+------------------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

至此安装完毕。

    4.4 设置开启自启

服务正常或者异常产生的重启都需要重启postgres,可通过设置linux启动项设置自启动, PostgreSQL的开机自启动脚本位于PostgreSQL源码目录的contrib/start-scripts路径下 ,

[root@localhost contrib]# ll |grep start-scripts
drwxrwxrwx. 3 1107 1107  4096 5月  10 05:05 start-scripts
[root@localhost contrib]# cd start-scripts
[root@localhost start-scripts]# ll
总用量 12
-rw-r--r--. 1 1107 1107 1529 5月  10 04:50 freebsd
-rw-r--r--. 1 1107 1107 3642 5月  10 04:50 linux
drwxrwxrwx. 2 1107 1107 4096 5月  10 05:05 osx

linux即为开机启动脚本文件,文件包含设置说明:

[root@localhost start-scripts]# less linux 
#! /bin/sh

# chkconfig: 2345 98 02
# description: PostgreSQL RDBMS

# This is an example of a start/stop script for SysV-style init, such
# as is used on Linux systems.  You should edit some of the variables
# and maybe the 'echo' commands.
#
# Place this file at /etc/init.d/postgresql (or
# /etc/rc.d/init.d/postgresql) and make symlinks to
#   /etc/rc.d/rc0.d/K02postgresql
#   /etc/rc.d/rc1.d/K02postgresql
#   /etc/rc.d/rc2.d/K02postgresql
#   /etc/rc.d/rc3.d/S98postgresql
#   /etc/rc.d/rc4.d/S98postgresql
#   /etc/rc.d/rc5.d/S98postgresql
# Or, if you have chkconfig, simply:
# chkconfig --add postgresql
#
# Proper init scripts on Linux systems normally require setting lock
# and pid files under /var/run as well as reacting to network
# settings, so you should treat this with care.

# Original author:  Ryan Kirkpatrick <pgsql@rkirkpat.net>

# contrib/start-scripts/linux
....

    4.4.1 修改linux文件属性,添加X属性

[root@localhost start-scripts]# chmod a+x linux 

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

[root@localhost start-scripts]# cp linux  /etc/init.d/postgresql

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

prefix设置为postgresql的安装路径,PGDATA设置为postgresql的数据目录路径:

     29 ## EDIT FROM HERE
     30 
     31 # Installation prefix
     32 #prefix=/usr/local/pgsql
     33 prefix=/usr/local/pgsql9.5.3
     34 
     35 # Data directory
     36 PGDATA="/usr/local/pgsql9.5.3/data"

    4.4.4 重启数据库服务

[root@localhost init.d]# service postgresql stop
Stopping PostgreSQL: ok
[root@localhost init.d]# service postgresql start
Starting PostgreSQL: ok

    4.4.5 添加到启动项

[root@localhost init.d]# chkconfig --add postgresql
[root@localhost init.d]# chkconfig --list|grep postgres
postgresql      0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

本文是源码安装过程,该种安装方式可以在安装过程中配置一些参数。其他还有rmp等方式可参考博文1。原安装包中的各文件以及安装过程中的参数说明等可参考博文2

© 著作权归作者所有

共有 人打赏支持
Splace
粉丝 2
博文 8
码字总数 11335
作品 0
杭州
postgresql 源码安装小记

1 Requirements 安装以下的软件包 The following software packages are required for building PostgreSQL: rpm -q make gcc gzip readline readline-devel zlib zlib-devel 查看版本 make......

rainxian
07/17
0
0
Linux CentOS 6.x 开发配置文档 5 - PostgreSQL

一,图形化的安装: 1,进入官网的下载页面:http://www.postgresql.org/download/linux/ 2,先修改文件权限:chmod 777 postgresql-9.2.4-1-linux-x64.run 3,安装:./postgresql-9.2.4-1-...

-蒋全忠-
2015/05/15
0
0
centos6.5下postgresql9.4.3安装与配置

一、简介 PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统。有些特性甚至连商业数据库都不具备。这个起源于...

jxzhfei
06/26
0
0
PostgreSQL在CentOS下的源码安装

下面主要是PostgreSQL在CentOS下的安装步骤,和Linux步骤基本类似。 1.环境: 操作系统:CentOS-6.2-x8664 虚拟机:Vmware-workstation 6.5 数据库:postgresql-9.1.3 工具: SecureCRT 5.1.2 2...

kenyon_君羊
2012/04/15
0
2
yum 安装 Postgresql 9.4 on CentOS 6.5,指定数据目录

补充更新:指定数据目录,因为默认centos安装postgresql数据库安装在了系统盘,然而我的系统盘很小。 参考: http://www.tuicool.com/articles/iArAba http://crashmag.net/changing-the-de...

ouhoo
2015/03/27
0
0
Ubuntu 12.04下PostgreSQL-9.1安装与配置详解(在线安装)

说明: 我是用root用户在终端登陆的,如果是非root用户,那在命令前需要加上"sudo",你懂的... 第一步:在Ubuntu下安装Postgresql 1.使用 apt-get install安装 root@server2-virtual-machine...

今幕明
2015/03/17
0
0
1 Ambari从Postgresql8.4升级到9.2

1.1 安装Postgresql9.2 1) 安装依赖 安装readline-devel.x8664 0:6.0-4.el6和ncurses-devel.x8664 0:5.7-3.20090208.el6 rpm -ivh ncurses-devel-5.7-3.20090208.el6.x86_64.rpm rpm -ivh re......

yntmdr
07/06
0
0
centos7部署posgresql和kong总结

  之前在macos系统测试安装psql和kong,但是实际环境中,大部分是部署在linux服务器上。下面记录了在centos7上部署postgresql和kong的总结以及遇到的一些问题的解决。 查看centos版本: $ ...

zhoujie0111
06/08
0
0
PostgreSQL安装详细步骤(windows)

PostgreSQL安装: 一、windows下安装过程 安装介质:postgresql-9.1.3-1-windows.exe(46M),安装过程非常简单,过程如下: 1、开始安装: 2、选择程序安装目录: 注:安装 PostgreSQL 的分...

引鸩怼孑
2015/04/21
0
1
[杂记]PostgreSQL命令行使用

关于PostgreSQL的使用 平台: Ubuntu 12.04 & 14.04 版本: PostgreSQL 9.3.4 PostgreSQL安装 详见官网安装过程 添加用户 初次安装后,默认生成一个名为postgres的数据库和一个名为postgres的数...

Haffe
2014/10/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Android 复制和粘贴功能

做了一回搬运工,原文地址:https://blog.csdn.net/kennethyo/article/details/76602765 Android 复制和粘贴功能,需要调用系统服务ClipboardManager来实现。 ClipboardManager mClipboardM...

她叫我小渝
9分钟前
0
0
拦截SQLSERVER的SSL加密通道替换传输过程中的用户名密码实现运维审计(一)

工作准备 •一台SQLSERVER 2005/SQLSERVER 2008服务 •SQLSERVER jdbc驱动程序 •Java开发环境eclipse + jdk1.8 •java反编译工具JD-Core 反编译JDBC分析SQLSERVER客户端与服务器通信原理 SQ...

紅顏為君笑
26分钟前
4
0
jQuery零基础入门——(六)修改DOM结构

《jQuery零基础入门》系列博文是在廖雪峰老师的博文基础上,可能补充了个人的理解和日常遇到的点,用我的理解表述出来,主干出处来自廖雪峰老师的技术分享。 在《零基础入门JavaScript》的时...

JandenMa
43分钟前
0
0
linux mint 1.9 qq 安装

转: https://www.jianshu.com/p/cdc3d03c144d 1. 下载 qq 轻聊版,可在百度搜索后下载 QQ7.9Light.exe 2. 去wine的官网(https://wiki.winehq.org/Ubuntu) 安装 wine . 提醒网页可以切换成中...

Canaan_
今天
0
0
PHP后台运行命令并管理运行程序

php后台运行命令并管理后台运行程序 class ProcessModel{ private $pid; private $command; private $resultToFile = ''; public function __construct($cl=false){......

colin_86
今天
1
0
数据结构与算法4

在此程序中,HighArray类中的find()方法用数据项的值作为参数传递,它的返回值决定是否找到此数据项。 insert()方法向数组下一个空位置放置一个新的数据项。一个名为nElems的字段跟踪记录着...

沉迷于编程的小菜菜
今天
1
1
fiddler安装和基本使用以及代理设置

项目需求 由于开发过程中客户端和服务器数据交互非常频繁,有时候服务端需要知道客户端调用接口传了哪些参数过来,这个时候就需要一个工具可以监听这些接口请求参数,已经接口的响应的数据,这种...

银装素裹
今天
0
0
Python分析《我不是药神》豆瓣评论

读取 Mongo 中的短评数据,进行中文分词 对分词结果取 Top50 生成词云 生成词云效果 看来网上关于 我不是药神 vs 达拉斯 的争论很热啊。关于词频统计就这些,代码中也会完成一些其它的分析任...

猫咪编程
今天
0
0
虚拟机怎么安装vmware tools

https://blog.csdn.net/tjcwt2011/article/details/72638977

AndyZhouX
昨天
1
0
There is no session with id[xxx]

参考网页 https://blog.csdn.net/caimengyuan/article/details/52526765 报错 2018-07-19 23:04:35,330 [http-nio-1008-exec-8] DEBUG [org.apache.shiro.web.servlet.SimpleCookie] - Found......

karma123
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部