網上出現的比較多安裝方法要么是源碼安裝,要么是yum安裝,我發覺都要配置很多屬性,比較麻煩,所以現在我在centos7長用 run文件來安裝
http://get.enterprisedb.com/postgresql/postgresql-9.5.1-1-linux-x64.run
這里的安裝shell整理的很零亂,后面會整理一個完整版本的出來
wget https://pgbouncer.github.io/downloads/files/1.7.2/pgbouncer-1.7.2.tar.gz wget http://get.enterprisedb.com/postgresql/postgresql-9.5.1-1-linux-x64.run wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gztar zxvf libevent-2.0.22-stable.tar.gz cd libevent-2.0.22-stable ./configure --prefix=/usr/local/libevent make make install cd ..tar zxvf pgbouncer-1.7.2.tar.gz cd pgbouncer-1.7.2 ./configure --prefix=/usr/local/pgbouncer/ --with-libevent=/usr/local/libevent/ make make install cd ..chmod 777 postgresql-9.5.1-1-linux-x64.run ./postgresql-9.5.1-1-linux-x64.runsudo chown -R postgres.postgres /alidata/pgsql sudo chown -R postgres.postgres /usr/local/pgbouncer
#以下為配置環境變量部分,這里還沒寫好,你可以參考 su - postgres cp .bash_profile /alidata/pgsql cp .bashrc /alidata/pgsql su - postgresexport PGHOME=/alidata/pgsql export PATH=$PGHOME/bin:$PATH export PGDATA=$PGHOME/data export LD_LIBRARY_PATH=$PGHOME/lib export LD_LIBRARY_PATH=/usr/local/libevent/lib:$LD_LIBRARY_PATH
用run文件安裝就比較簡單,但是安裝完成后,它會默認安裝成linux的系統服務,所以這里需要從源碼里面去拷貝
PostgreSQL的開機自啟動腳本位于PostgreSQL源碼目錄的contrib/start-scripts路徑下
linux文件即為linux系統上的啟動腳本
#chmod a+x linux
#cp linux /etc/init.d/postgresql
#修改/etc/init.d/postgresql文件的兩個變量
prefix設置為postgresql的安裝路徑:/alidata/pgsql
附此文件,如果你沒下載源碼,可以直接通過在
vi postgresql新建一個文件
把下面這段拷貝進去保存
拷貝進去放到?/etc/init.d/下
然后service postgresql status 可以查詢對應的操作
#! /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## EDIT FROM HERE# Installation prefix prefix=/alidata/pgsql# Data directory PGDATA="/alidata/data"# Who to run the postmaster as, usually "postgres". (NOT "root") PGUSER=postgres# Where to keep a log file PGLOG="$PGDATA/serverlog"# It's often a good idea to protect the postmaster from being killed by the # OOM killer (which will tend to preferentially kill the postmaster because # of the way it accounts for shared memory). To do that, uncomment these # three lines: #PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj #PG_MASTER_OOM_SCORE_ADJ=-1000 #PG_CHILD_OOM_SCORE_ADJ=0 # Older Linux kernels may not have /proc/self/oom_score_adj, but instead # /proc/self/oom_adj, which works similarly except for having a different # range of scores. For such a system, uncomment these three lines instead: #PG_OOM_ADJUST_FILE=/proc/self/oom_adj #PG_MASTER_OOM_SCORE_ADJ=-17 #PG_CHILD_OOM_SCORE_ADJ=0## STOP EDITING HERE# The path that is to be used for the script PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin# What to use to start up the postmaster. (If you want the script to wait # until the server has started, you could use "pg_ctl start -w" here. # But without -w, pg_ctl adds no value.) DAEMON="$prefix/bin/postmaster"# What to use to shut down the postmaster PGCTL="$prefix/bin/pg_ctl"set -e# Only start if we can find the postmaster. test -x $DAEMON || {echo "$DAEMON not found"if [ "$1" = "stop" ]then exit 0else exit 5fi }# If we want to tell child processes to adjust their OOM scores, set up the # necessary environment variables. Can't just export them through the "su". if [ -e "$PG_OOM_ADJUST_FILE" -a -n "$PG_CHILD_OOM_SCORE_ADJ" ] thenDAEMON_ENV="PG_OOM_ADJUST_FILE=$PG_OOM_ADJUST_FILE PG_OOM_ADJUST_VALUE=$PG_CHILD_OOM_SCORE_ADJ" fi# Parse command line parameters. case $1 instart)echo -n "Starting PostgreSQL: "test -e "$PG_OOM_ADJUST_FILE" && echo "$PG_MASTER_OOM_SCORE_ADJ" > "$PG_OOM_ADJUST_FILE"su - $PGUSER -c "$DAEMON_ENV $DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1echo "ok";;stop)echo -n "Stopping PostgreSQL: "su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast"echo "ok";;restart)echo -n "Restarting PostgreSQL: "su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast -w"test -e "$PG_OOM_ADJUST_FILE" && echo "$PG_MASTER_OOM_SCORE_ADJ" > "$PG_OOM_ADJUST_FILE"su - $PGUSER -c "$DAEMON_ENV $DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1echo "ok";;reload)echo -n "Reload PostgreSQL: "su - $PGUSER -c "$PGCTL reload -D '$PGDATA' -s"echo "ok";;status)su - $PGUSER -c "$PGCTL status -D '$PGDATA'";;*)# Print helpecho "Usage: $0 {start|stop|restart|reload|status}" 1>&2exit 1;; esacexit 0
chkconfig --add 服務名稱 ?????????(首先,添加為系統服務,注意add前面有兩個橫杠)
chkconfig --leve 啟動級別 服務名 on ? ? ? ??
說明,3級別代表在命令行模式啟動,5級別代表在圖形界面啟動,on表示開啟)
?chkconfig --leve 啟動級別 服務名 off ? ? ? ? ? ? ?
(說明,off表示關閉自啟動)
?例如:chkconfig --level 3 postgresql on? ?? ?? ? ? ? ? ? ? ?(說明:讓postgresql?服務在命令行模式,隨系統啟動)