zoukankan      html  css  js  c++  java
  • linux下安装postgresql

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

    Postgresql版本:postgresql.9.5.3

     

    添加开启自启设置:http://my.oschina.net/ensn/blog/690719

    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 the C compiler works... yes
    checking for C compiler default output file name... a.out
    checking for suffix of executables... 
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ISO C89... none needed
    checking whether gcc supports -Wdeclaration-after-statement... yes
    checking whether gcc supports -Wendif-labels... yes
    checking whether gcc supports -Wmissing-format-attribute... yes
    checking whether gcc supports -Wformat-security... yes
    checking whether gcc supports -fno-strict-aliasing... yes
    checking whether gcc supports -fwrapv... yes
    checking whether gcc supports -fexcess-precision=standard... no
    checking whether gcc supports -funroll-loops... yes
    checking whether gcc supports -ftree-vectorize... yes
    checking whether gcc supports -Wunused-command-line-argument... no
    checking whether the C compiler still works... yes
    checking how to run the C preprocessor... gcc -E
    checking allow thread-safe client libraries... yes
    checking whether to build with Tcl... no
    checking whether to build Perl modules... no
    checking whether to build Python modules... no
    checking whether to build with GSSAPI support... no
    checking whether to build with PAM support... no
    checking whether to build with LDAP support... no
    checking whether to build with Bonjour support... no
    checking whether to build with OpenSSL support... no
    checking whether to build with SELinux support... no
    checking for grep that handles long lines and -e... /bin/grep
    checking for egrep... /bin/grep -E
    checking for ld used by GCC... /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld... yes
    checking for ranlib... ranlib
    checking for strip... strip
    checking whether it is possible to strip libraries... yes
    checking for ar... ar
    checking for a BSD-compatible install... /usr/bin/install -c
    checking for tar... /bin/tar
    checking whether ln -s works... yes
    checking for gawk... gawk
    checking for a thread-safe mkdir -p... /bin/mkdir -p
    checking for bison... /usr/bin/bison
    configure: using bison (GNU Bison) 2.4.1
    checking for flex... /usr/bin/flex
    configure: using flex 2.5.35
    checking for perl... /usr/bin/perl
    configure: using perl 5.10.1
    checking for main in -lm... yes
    checking for library containing setproctitle... no
    checking for library containing dlopen... -ldl
    checking for library containing socket... none required
    checking for library containing shl_load... no
    checking for library containing getopt_long... none required
    checking for library containing crypt... -lcrypt
    checking for library containing shm_open... -lrt
    checking for library containing shm_unlink... none required
    checking for library containing fdatasync... none required
    checking for library containing sched_yield... none required
    checking for library containing gethostbyname_r... none required
    checking for library containing shmget... none required
    checking for library containing readline... -lreadline
    checking for inflate in -lz... yes
    checking for ANSI C header files... yes
    checking for sys/types.h... yes
    checking for sys/stat.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for memory.h... yes
    checking for strings.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    .......
    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 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
    
    [root@localhost ~]# su - postgres
    [postgres@localhost ~]$ echo $PGDATA
    /usr/local/pgsql9.5.3/data
    [postgres@localhost ~]$ pwd
    [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:         
    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 | {}
    

    至此安装完毕。

     

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

  • 相关阅读:
    电力企业信息化建设方案之调度信息报送系统
    HP QC IE11不支持( win7 64位 无法安装)解决方法
    ajax传递list集合
    mysql主从配置
    js动态获取地址栏后的参数
    html页面保存数的两种方式
    微信开发之八 页面获取周围beacon设备
    最好的时光在路上,最美的风景在远方
    【摄影】田子坊
    【前端统计图】echarts实现简单柱状图
  • 原文地址:https://www.cnblogs.com/space-place/p/5581903.html
Copyright © 2011-2022 走看看