• Linux(Redhat 7.6)安装PG(Postgresql 9.6.0)


    Linux(Redhat 7.6)安装PG(Postgresql 9.6.0)

    1. 摘要

    需要在Linux上安装postgres数据库,指定安装目录,简单测试各种配置。安装包下载地址:

    //源码
    https://github.com/postgres/postgres/releases
    
    //二进制
    https://www.enterprisedb.com/download-postgresql-binaries
    
    //官网
    https://www.postgresql.org/

    本次测试使用的版本安装包是【postgresql-9.6.0.tar.gz】

    查看本地yum源

    [root@mm2020 ~]# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3        42G  4.0G   38G  10% /
    devtmpfs        1.9G     0  1.9G   0% /dev
    tmpfs           1.9G  4.0K  1.9G   1% /dev/shm
    tmpfs           1.9G   13M  1.9G   1% /run
    tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
    /dev/sda1       497M  166M  332M  34% /boot
    tmpfs           378M   44K  378M   1% /run/user/0
    /dev/sr0        4.2G  4.2G     0 100% /run/media/root/RHEL-7.6 Server.x86_64
    
    [root@mm2020 ~]# yum repolist
    Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
    This system is not registered with an entitlement server. You can use subscription-manager to register.
    repo id repo name status
    !oel6 OEL6.5 5,152
    repolist: 5,152
    yum

    2. 操作步骤

    2.1 安装前配置

    2.1.1 永久关闭防火墙

    systemctl status firewalld
    systemctl stop firewalld
    systemctl disable firewalld
    [root@mm2020 ~]# systemctl status firewalld
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
       Active: active (running) since Tue 2020-11-03 13:43:21 CST; 16min ago
         Docs: man:firewalld(1)
     Main PID: 9407 (firewalld)
        Tasks: 2
       CGroup: /system.slice/firewalld.service
               └─9407 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
    
    Nov 03 13:43:18 mm2020.us.oracle.com systemd[1]: Starting firewalld - dynamic firewall daemon...
    Nov 03 13:43:21 mm2020.us.oracle.com systemd[1]: Started firewalld - dynamic firewall daemon.
    [root@mm2020 ~]# systemctl stop firewalld
    [root@mm2020 ~]# systemctl disable firewalld
    Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
    Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
    详细代码

    2.1.2 系统安装必要依赖

    yum install -y gcc.x86_64 glibc.x86_64 glibc-devel.x86_64 vim-enhanced.x86_64 gcc-java apr apr-devel openssl openssl-devel libgcc.x86_64 java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64 perl-Module-Install.noarch readline-devel.x86_64
    [root@mm2020 ~]# yum install -y gcc.x86_64 glibc.x86_64 glibc-devel.x86_64 vim-enhanced.x86_64 gcc-java apr apr-devel openssl openssl-devel libgcc.x86_64 java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64 perl-Module-Install.noarch readline-devel.x86_64
    Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
    This system is not registered with an entitlement server. You can use subscription-manager to register.
    oel6                                                                                                                   | 4.3 kB  00:00:00     
    Package glibc-2.17-260.el7.x86_64 already installed and latest version
    Package 2:vim-enhanced-7.4.160-5.el7.x86_64 already installed and latest version
    No package gcc-java available.
    Package 1:openssl-1.0.2k-16.el7.x86_64 already installed and latest version
    Package libgcc-4.8.5-36.el7.x86_64 already installed and latest version
    Package 1:java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64 already installed and latest version
    No package perl-Module-Install.noarch available.
    Resolving Dependencies
    --> Running transaction check
    ---> Package apr.x86_64 0:1.4.8-3.el7_4.1 will be installed
    ---> Package apr-devel.x86_64 0:1.4.8-3.el7_4.1 will be installed
    ---> Package gcc.x86_64 0:4.8.5-36.el7 will be installed
    --> Processing Dependency: cpp = 4.8.5-36.el7 for package: gcc-4.8.5-36.el7.x86_64
    ---> Package glibc-devel.x86_64 0:2.17-260.el7 will be installed
    --> Processing Dependency: glibc-headers = 2.17-260.el7 for package: glibc-devel-2.17-260.el7.x86_64
    --> Processing Dependency: glibc-headers for package: glibc-devel-2.17-260.el7.x86_64
    ---> Package java-1.8.0-openjdk-devel.x86_64 1:1.8.0.181-7.b13.el7 will be installed
    ---> Package openssl-devel.x86_64 1:1.0.2k-16.el7 will be installed
    --> Processing Dependency: krb5-devel(x86-64) for package: 1:openssl-devel-1.0.2k-16.el7.x86_64
    --> Processing Dependency: zlib-devel(x86-64) for package: 1:openssl-devel-1.0.2k-16.el7.x86_64
    ---> Package readline-devel.x86_64 0:6.2-10.el7 will be installed
    --> Processing Dependency: ncurses-devel for package: readline-devel-6.2-10.el7.x86_64
    --> Running transaction check
    ---> Package cpp.x86_64 0:4.8.5-36.el7 will be installed
    ---> Package glibc-headers.x86_64 0:2.17-260.el7 will be installed
    --> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers-2.17-260.el7.x86_64
    --> Processing Dependency: kernel-headers for package: glibc-headers-2.17-260.el7.x86_64
    ---> Package krb5-devel.x86_64 0:1.15.1-34.el7 will be installed
    --> Processing Dependency: libkadm5(x86-64) = 1.15.1-34.el7 for package: krb5-devel-1.15.1-34.el7.x86_64
    --> Processing Dependency: keyutils-libs-devel for package: krb5-devel-1.15.1-34.el7.x86_64
    --> Processing Dependency: libcom_err-devel for package: krb5-devel-1.15.1-34.el7.x86_64
    --> Processing Dependency: libselinux-devel for package: krb5-devel-1.15.1-34.el7.x86_64
    --> Processing Dependency: libverto-devel for package: krb5-devel-1.15.1-34.el7.x86_64
    ---> Package ncurses-devel.x86_64 0:5.9-14.20130511.el7_4 will be installed
    ---> Package zlib-devel.x86_64 0:1.2.7-18.el7 will be installed
    --> Running transaction check
    ---> Package kernel-headers.x86_64 0:3.10.0-957.el7 will be installed
    ---> Package keyutils-libs-devel.x86_64 0:1.5.8-3.el7 will be installed
    ---> Package libcom_err-devel.x86_64 0:1.42.9-13.el7 will be installed
    ---> Package libkadm5.x86_64 0:1.15.1-34.el7 will be installed
    ---> Package libselinux-devel.x86_64 0:2.5-14.1.el7 will be installed
    --> Processing Dependency: libsepol-devel(x86-64) >= 2.5-10 for package: libselinux-devel-2.5-14.1.el7.x86_64
    --> Processing Dependency: pkgconfig(libpcre) for package: libselinux-devel-2.5-14.1.el7.x86_64
    --> Processing Dependency: pkgconfig(libsepol) for package: libselinux-devel-2.5-14.1.el7.x86_64
    ---> Package libverto-devel.x86_64 0:0.2.5-4.el7 will be installed
    --> Running transaction check
    ---> Package libsepol-devel.x86_64 0:2.5-10.el7 will be installed
    ---> Package pcre-devel.x86_64 0:8.32-17.el7 will be installed
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ==============================================================================================================================================
     Package                                     Arch                      Version                                  Repository               Size
    ==============================================================================================================================================
    Installing:
     apr                                         x86_64                    1.4.8-3.el7_4.1                          oel6                    103 k
     apr-devel                                   x86_64                    1.4.8-3.el7_4.1                          oel6                    188 k
     gcc                                         x86_64                    4.8.5-36.el7                             oel6                     16 M
     glibc-devel                                 x86_64                    2.17-260.el7                             oel6                    1.1 M
     java-1.8.0-openjdk-devel                    x86_64                    1:1.8.0.181-7.b13.el7                    oel6                    9.8 M
     openssl-devel                               x86_64                    1:1.0.2k-16.el7                          oel6                    1.5 M
     readline-devel                              x86_64                    6.2-10.el7                               oel6                    138 k
    Installing for dependencies:
     cpp                                         x86_64                    4.8.5-36.el7                             oel6                    6.0 M
     glibc-headers                               x86_64                    2.17-260.el7                             oel6                    683 k
     kernel-headers                              x86_64                    3.10.0-957.el7                           oel6                    8.0 M
     keyutils-libs-devel                         x86_64                    1.5.8-3.el7                              oel6                     37 k
     krb5-devel                                  x86_64                    1.15.1-34.el7                            oel6                    271 k
     libcom_err-devel                            x86_64                    1.42.9-13.el7                            oel6                     31 k
     libkadm5                                    x86_64                    1.15.1-34.el7                            oel6                    177 k
     libselinux-devel                            x86_64                    2.5-14.1.el7                             oel6                    187 k
     libsepol-devel                              x86_64                    2.5-10.el7                               oel6                     77 k
     libverto-devel                              x86_64                    0.2.5-4.el7                              oel6                     12 k
     ncurses-devel                               x86_64                    5.9-14.20130511.el7_4                    oel6                    713 k
     pcre-devel                                  x86_64                    8.32-17.el7                              oel6                    480 k
     zlib-devel                                  x86_64                    1.2.7-18.el7                             oel6                     50 k
    
    Transaction Summary
    ==============================================================================================================================================
    Install  7 Packages (+13 Dependent packages)
    
    Total download size: 46 M
    Installed size: 109 M
    Downloading packages:
    ----------------------------------------------------------------------------------------------------------------------------------------------
    Total                                                                                                          56 MB/s |  46 MB  00:00:00     
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
      Installing : libkadm5-1.15.1-34.el7.x86_64                                                                                             1/20 
      Installing : apr-1.4.8-3.el7_4.1.x86_64                                                                                                2/20 
      Installing : libcom_err-devel-1.42.9-13.el7.x86_64                                                                                     3/20 
      Installing : libsepol-devel-2.5-10.el7.x86_64                                                                                          4/20 
      Installing : zlib-devel-1.2.7-18.el7.x86_64                                                                                            5/20 
      Installing : pcre-devel-8.32-17.el7.x86_64                                                                                             6/20 
      Installing : libselinux-devel-2.5-14.1.el7.x86_64                                                                                      7/20 
      Installing : keyutils-libs-devel-1.5.8-3.el7.x86_64                                                                                    8/20 
      Installing : ncurses-devel-5.9-14.20130511.el7_4.x86_64                                                                                9/20 
      Installing : libverto-devel-0.2.5-4.el7.x86_64                                                                                        10/20 
      Installing : krb5-devel-1.15.1-34.el7.x86_64                                                                                          11/20 
      Installing : kernel-headers-3.10.0-957.el7.x86_64                                                                                     12/20 
      Installing : glibc-headers-2.17-260.el7.x86_64                                                                                        13/20 
      Installing : glibc-devel-2.17-260.el7.x86_64                                                                                          14/20 
      Installing : cpp-4.8.5-36.el7.x86_64                                                                                                  15/20 
      Installing : gcc-4.8.5-36.el7.x86_64                                                                                                  16/20 
      Installing : 1:openssl-devel-1.0.2k-16.el7.x86_64                                                                                     17/20 
      Installing : readline-devel-6.2-10.el7.x86_64                                                                                         18/20 
      Installing : apr-devel-1.4.8-3.el7_4.1.x86_64                                                                                         19/20 
      Installing : 1:java-1.8.0-openjdk-devel-1.8.0.181-7.b13.el7.x86_64                                                                    20/20 
    oel6/productid                                                                                                         | 1.6 kB  00:00:00     
      Verifying  : 1:java-1.8.0-openjdk-devel-1.8.0.181-7.b13.el7.x86_64                                                                     1/20 
      Verifying  : glibc-devel-2.17-260.el7.x86_64                                                                                           2/20 
      Verifying  : cpp-4.8.5-36.el7.x86_64                                                                                                   3/20 
      Verifying  : kernel-headers-3.10.0-957.el7.x86_64                                                                                      4/20 
      Verifying  : apr-devel-1.4.8-3.el7_4.1.x86_64                                                                                          5/20 
      Verifying  : 1:openssl-devel-1.0.2k-16.el7.x86_64                                                                                      6/20 
      Verifying  : gcc-4.8.5-36.el7.x86_64                                                                                                   7/20 
      Verifying  : libverto-devel-0.2.5-4.el7.x86_64                                                                                         8/20 
      Verifying  : ncurses-devel-5.9-14.20130511.el7_4.x86_64                                                                                9/20 
      Verifying  : glibc-headers-2.17-260.el7.x86_64                                                                                        10/20 
      Verifying  : keyutils-libs-devel-1.5.8-3.el7.x86_64                                                                                   11/20 
      Verifying  : pcre-devel-8.32-17.el7.x86_64                                                                                            12/20 
      Verifying  : krb5-devel-1.15.1-34.el7.x86_64                                                                                          13/20 
      Verifying  : zlib-devel-1.2.7-18.el7.x86_64                                                                                           14/20 
      Verifying  : readline-devel-6.2-10.el7.x86_64                                                                                         15/20 
      Verifying  : libselinux-devel-2.5-14.1.el7.x86_64                                                                                     16/20 
      Verifying  : libsepol-devel-2.5-10.el7.x86_64                                                                                         17/20 
      Verifying  : libcom_err-devel-1.42.9-13.el7.x86_64                                                                                    18/20 
      Verifying  : apr-1.4.8-3.el7_4.1.x86_64                                                                                               19/20 
      Verifying  : libkadm5-1.15.1-34.el7.x86_64                                                                                            20/20 
    
    Installed:
      apr.x86_64 0:1.4.8-3.el7_4.1            apr-devel.x86_64 0:1.4.8-3.el7_4.1                         gcc.x86_64 0:4.8.5-36.el7                
      glibc-devel.x86_64 0:2.17-260.el7       java-1.8.0-openjdk-devel.x86_64 1:1.8.0.181-7.b13.el7      openssl-devel.x86_64 1:1.0.2k-16.el7     
      readline-devel.x86_64 0:6.2-10.el7     
    
    Dependency Installed:
      cpp.x86_64 0:4.8.5-36.el7                     glibc-headers.x86_64 0:2.17-260.el7               kernel-headers.x86_64 0:3.10.0-957.el7      
      keyutils-libs-devel.x86_64 0:1.5.8-3.el7      krb5-devel.x86_64 0:1.15.1-34.el7                 libcom_err-devel.x86_64 0:1.42.9-13.el7     
      libkadm5.x86_64 0:1.15.1-34.el7               libselinux-devel.x86_64 0:2.5-14.1.el7            libsepol-devel.x86_64 0:2.5-10.el7          
      libverto-devel.x86_64 0:0.2.5-4.el7           ncurses-devel.x86_64 0:5.9-14.20130511.el7_4      pcre-devel.x86_64 0:8.32-17.el7             
      zlib-devel.x86_64 0:1.2.7-18.el7             
    
    Complete!
    [root@mm2020 ~]# 
    详细代码

    2.1.3 创建系统用户

    adduser postgres
    echo postgres | passwd --stdin postgres
    [root@mm2020 ~]# adduser postgres
    [root@mm2020 ~]# 
    [root@mm2020 ~]# echo postgres | passwd --stdin postgres
    Changing password for user postgres.
    passwd: all authentication tokens updated successfully.
    详细代码

    2.1.4 配置环境变量

    //root
    
    cat >> /etc/profile << EOF
    PATH=$PATH:/usr/local/pgsql/bin
    EOF
    source /etc/profile
    
    //postgres
    
    su - postgres
    cat >>  .bashrc << EOF
    export PGHOME=/usr/local/pgsql
    export PGDATA=$PGHOME/data
    export PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin
    EOF
    source .bashrc

    2.1.5 下载上传并解压安装包

    上传并解压安装包到指定目录

    [root@mm2020 ~]# ls -ltr /usr/local/src
    total 24492
    -rw-r--r--. 1 root root 25075838 Nov  2 16:58 postgresql-9.6.0.tar.gz
    [root@mm2020 ~]# tar -zxvf /usr/local/src/postgresql-9.6.0.tar.gz -C /usr/local/
    ......
    [root@mm2020 ~]# mv /usr/local/postgresql-9.6.0/ /usr/local/pgsql/
    [root@mm2020 ~]# ls -ltr /usr/local/pgsql
    total 652
    -rw-r--r--.  1 1107 1107   1209 Sep 27  2016 README
    -rw-r--r--.  1 1107 1107   1489 Sep 27  2016 Makefile
    -rw-r--r--.  1 1107 1107    283 Sep 27  2016 HISTORY
    -rw-r--r--.  1 1107 1107   3638 Sep 27  2016 GNUmakefile.in
    -rw-r--r--.  1 1107 1107   1192 Sep 27  2016 COPYRIGHT
    -rw-r--r--.  1 1107 1107  75195 Sep 27  2016 configure.in
    -rwxr-xr-x.  1 1107 1107 471157 Sep 27  2016 configure
    -rw-r--r--.  1 1107 1107    384 Sep 27  2016 aclocal.m4
    drwxrwxrwx. 55 1107 1107   4096 Sep 27  2016 contrib
    drwxrwxrwx.  2 1107 1107   4096 Sep 27  2016 config
    drwxrwxrwx.  3 1107 1107    107 Sep 27  2016 doc
    -rw-r--r--.  1 1107 1107  75065 Sep 27  2016 INSTALL
    drwxrwxrwx. 16 1107 1107   4096 Sep 27  2016 src

    2.1.6 创建数据文件

    //创建数据库数据存放的文件夹,不影响后续操作
    mkdir /usr/local/pgsql/data
    
    //把安装目录赋权给postgres用户
    chown -R postgres:postgres /usr/local/pgsql/

    2.2 安装PG

    // 编译前的配置
    cd /usr/local/pgsql/ .
    /configure --prefix=/usr/local/pgsql // 正式编译 make
    //正式编译花费时间较长,请耐心等候几分钟,直到出现下面结束语句时,执行安装
    ......
    All of PostgreSQL successfully made. Ready to install.
    // 安装 make install
    //直到出现下面结束语句时,安装成功
    PostgreSQL installation complete.

    2.3 启动PG

    初始化数据库、启动postgres service服务需要在系统用户【postgres】下执行。

     2.3.1 检查安装成功后目录前后的差异

    [root@mm2020 pgsql]# pwd
    /usr/local/pgsql
    [root@mm2020 pgsql]# chown -R postgres:postgres /usr/local/pgsql/
    [root@mm2020 pgsql]# ls -ltr
    total 1076
    -rw-r--r--.  1 postgres postgres   1209 Sep 27  2016 README
    -rw-r--r--.  1 postgres postgres   1489 Sep 27  2016 Makefile
    -rw-r--r--.  1 postgres postgres    283 Sep 27  2016 HISTORY
    -rw-r--r--.  1 postgres postgres   3638 Sep 27  2016 GNUmakefile.in
    -rw-r--r--.  1 postgres postgres   1192 Sep 27  2016 COPYRIGHT
    -rw-r--r--.  1 postgres postgres  75195 Sep 27  2016 configure.in
    -rwxr-xr-x.  1 postgres postgres 471157 Sep 27  2016 configure
    -rw-r--r--.  1 postgres postgres    384 Sep 27  2016 aclocal.m4
    drwxrwxrwx. 55 postgres postgres   4096 Sep 27  2016 contrib
    drwxrwxrwx.  2 postgres postgres   4096 Sep 27  2016 config
    drwxrwxrwx.  3 postgres postgres    107 Sep 27  2016 doc
    -rw-r--r--.  1 postgres postgres  75065 Sep 27  2016 INSTALL
    drwxr-xr-x.  2 postgres postgres      6 Nov  3 14:29 data
    -rwxr-xr-x.  1 postgres postgres  39263 Nov  3 14:34 config.status
    -rw-r--r--.  1 postgres postgres   3638 Nov  3 14:34 GNUmakefile
    drwxrwxrwx. 16 postgres postgres   4096 Nov  3 14:34 src
    -rw-r--r--.  1 postgres postgres 369558 Nov  3 14:34 config.log
    drwxr-xr-x.  6 postgres postgres   4096 Nov  3 14:38 include
    drwxr-xr-x.  2 postgres postgres   4096 Nov  3 14:38 bin
    drwxr-xr-x.  6 postgres postgres   4096 Nov  3 14:38 share
    drwxr-xr-x.  4 postgres postgres   4096 Nov  3 14:38 lib
    [root@mm2020 pgsql]# cd bin/
    [root@mm2020 bin]# ls -ltr
    total 10384
    -rwxr-xr-x. 1 postgres postgres 6958152 Nov  3 14:38 postgres
    lrwxrwxrwx. 1 postgres postgres       8 Nov  3 14:38 postmaster -> postgres
    -rwxr-xr-x. 1 postgres postgres  879976 Nov  3 14:38 ecpg
    -rwxr-xr-x. 1 postgres postgres  109248 Nov  3 14:38 initdb
    -rwxr-xr-x. 1 postgres postgres   24160 Nov  3 14:38 pg_archivecleanup
    -rwxr-xr-x. 1 postgres postgres   78720 Nov  3 14:38 pg_basebackup
    -rwxr-xr-x. 1 postgres postgres   55360 Nov  3 14:38 pg_receivexlog
    -rwxr-xr-x. 1 postgres postgres   60120 Nov  3 14:38 pg_recvlogical
    -rwxr-xr-x. 1 postgres postgres   29584 Nov  3 14:38 pg_config
    -rwxr-xr-x. 1 postgres postgres   42480 Nov  3 14:38 pg_controldata
    -rwxr-xr-x. 1 postgres postgres   45064 Nov  3 14:38 pg_ctl
    -rwxr-xr-x. 1 postgres postgres  399048 Nov  3 14:38 pg_dump
    -rwxr-xr-x. 1 postgres postgres  160208 Nov  3 14:38 pg_restore
    -rwxr-xr-x. 1 postgres postgres   92904 Nov  3 14:38 pg_dumpall
    -rwxr-xr-x. 1 postgres postgres   51744 Nov  3 14:38 pg_resetxlog
    -rwxr-xr-x. 1 postgres postgres   86480 Nov  3 14:38 pg_rewind
    -rwxr-xr-x. 1 postgres postgres   24936 Nov  3 14:38 pg_test_fsync
    -rwxr-xr-x. 1 postgres postgres   19664 Nov  3 14:38 pg_test_timing
    -rwxr-xr-x. 1 postgres postgres  121376 Nov  3 14:38 pg_upgrade
    -rwxr-xr-x. 1 postgres postgres   76128 Nov  3 14:38 pg_xlogdump
    -rwxr-xr-x. 1 postgres postgres  136400 Nov  3 14:38 pgbench
    -rwxr-xr-x. 1 postgres postgres  515864 Nov  3 14:38 psql
    -rwxr-xr-x. 1 postgres postgres   58856 Nov  3 14:38 createdb
    -rwxr-xr-x. 1 postgres postgres   54232 Nov  3 14:38 dropdb
    -rwxr-xr-x. 1 postgres postgres   71752 Nov  3 14:38 createlang
    -rwxr-xr-x. 1 postgres postgres   71712 Nov  3 14:38 droplang
    -rwxr-xr-x. 1 postgres postgres   63664 Nov  3 14:38 createuser
    -rwxr-xr-x. 1 postgres postgres   54200 Nov  3 14:38 dropuser
    -rwxr-xr-x. 1 postgres postgres   59144 Nov  3 14:38 clusterdb
    -rwxr-xr-x. 1 postgres postgres   68016 Nov  3 14:38 vacuumdb
    -rwxr-xr-x. 1 postgres postgres   63336 Nov  3 14:38 reindexdb
    -rwxr-xr-x. 1 postgres postgres   35744 Nov  3 14:38 pg_isready

    2.3.2 初始化数据库

    [root@mm2020 ~]# su - postgres 
    Last login: Tue Nov  3 14:50:30 CST 2020 on pts/0
    [postgres@mm2020 ~]$ initdb -D $PGDATA
    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 "en_US.UTF-8".
    The default database encoding has accordingly been set to "UTF8".
    The default text search configuration will be set to "english".
    
    Data page checksums are disabled.
    
    fixing permissions on existing directory /usr/local/pgsql/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
    running bootstrap script ... ok
    performing post-bootstrap initialization ... 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:
    
        pg_ctl -D /usr/local/pgsql/data -l logfile start

    2.3.3 启动postgres service服务

    [postgres@mm2020 ~]$ pg_ctl -D $PGDATA -l $PGDATA/logfile start
    server starting
    [postgres@mm2020 ~]$ ps -ef | grep pg
    postgres  80845      1  0 14:52 pts/0    00:00:00 /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
    postgres  80903  80787  0 14:56 pts/0    00:00:00 grep --color=auto pg
    [postgres@mm2020 ~]$ 
    [postgres@mm2020 ~]$ ps -ef | grep postgres
    root      80786  12825  0 14:50 pts/0    00:00:00 su - postgres
    postgres  80787  80786  0 14:50 pts/0    00:00:00 -bash
    postgres  80845      1  0 14:52 pts/0    00:00:00 /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
    postgres  80847  80845  0 14:52 ?        00:00:00 postgres: checkpointer process   
    postgres  80848  80845  0 14:52 ?        00:00:00 postgres: writer process   
    postgres  80849  80845  0 14:52 ?        00:00:00 postgres: wal writer process   
    postgres  80850  80845  0 14:52 ?        00:00:00 postgres: autovacuum launcher process   
    postgres  80851  80845  0 14:52 ?        00:00:00 postgres: stats collector process   
    postgres  80904  80787  0 14:56 pts/0    00:00:00 ps -ef
    postgres  80905  80787  0 14:56 pts/0    00:00:00 grep --color=auto postgres

    2.4 测试PG

    设置用户密码

    //使用postgres账户进入控制台(现在密码应该是空)
    //把密码设置成123456可以使用\q命令退出控制台
    
    [postgres@mm2020 ~]$ psql -U postgres
    psql (9.6.0)
    Type "help" for help.
    
    postgres=# \password
    Enter new password: <postgres>
    Enter it again: <postgres>
    //=# alter user postgres with password 'postgres';
    ALTER ROLE
    
    postgres=# \q
    [postgres@mm2020 ~]$ 

    创建用于记录数据库操作语句的历史文件

    touch /usr/local/pgsql/.pgsql_history
    chown postgres:postgres /usr/local/pgsql/.pgsql_history 
    //创建测试数据库
    [postgres@mm2020 ~]$ createdb test
    
    //使用psql工具连接进入到数据库操作命令行
    [postgres@mm2020 ~]$ psql test
    psql (9.6.0)
    Type "help" for help.
    
    //设置sql语句执行的上下文(即操作的Schema)
    test=# set search_path to public;
    SET
    
    //创建测试表
    test=# create table test(id int primary key,name varchar(50) not null);
    CREATE TABLE
    test=# insert into test(id,name) values(1,'小明');
    INSERT 0 1
    test=# insert into test(id,name) values(2,'小红');
    INSERT 0 1
    
    //查看表记录
    test=# select * from test;
     id | name 
    ----+------
      1 | 小明
      2 | 小红
    (2 rows)
    
    //退出
    test=# \q
    [postgres@mm2020 ~]$ 

    2.5 配置开机自启服务

    将postgresql-9.6.0.tar.gz解压后的安装路径中的文件 /usr/local/pgsql/contrib/start-scripts/linux 复制重命名为 /etc/init.d/postgresql

    //切换到root用户下
    
    cp /usr/local/pgsql/contrib/start-scripts/linux /etc/init.d/postgresql
    chown postgres:postgres /etc/init.d/postgresql
    chmod +x /etc/init.d/postgresql
    
    //修改/etc/init.d/postgresql文件的两个变量
    
    vi /etc/init.d/postgresql
    prefix=$PGHOME   //数据库安装路径
    PGDATA=$PGDATA   //数据库数据路径
    
    //主要参数设置
    [root@mm2020 ~]# ll /etc/init.d/postgresql
    -rwxr-xr-x. 1 postgres postgres 3642 Nov 3 19:59 /etc/init.d/postgresql
    [root@mm2020 ~]# cat /etc/init.d/postgresql | grep prefix=
    prefix=/usr/local/pgsql
    [root@mm2020 ~]# cat /etc/init.d/postgresql | grep PGDATA=
    PGDATA="/usr/local/pgsql/data"

    测试关闭启动postgresql服务

    [root@mm2020 ~]# service postgresql status
    pg_ctl: server is running (PID: 80845)
    /usr/local/pgsql/bin/postgres "-D" "/usr/local/pgsql/data"
    [root@mm2020 ~]# service postgresql stop
    Stopping PostgreSQL: ok
    [root@mm2020 ~]# service postgresql start
    Starting PostgreSQL: ok

    设置postgresql服务开机自启动

    [root@mm2020 ~]# chkconfig --list
    
    Note: This output shows SysV services only and does not include native
          systemd services. SysV configuration data might be overridden by native
          systemd configuration.
    
          If you want to list systemd services use 'systemctl list-unit-files'.
          To see services enabled on particular target use
          'systemctl list-dependencies [target]'.
    
    netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
    network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
    rhnsd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
    vmware-tools    0:off   1:off   2:on    3:on    4:on    5:on    6:off
    [root@mm2020 ~]# chkconfig --add postgresql
    [root@mm2020 ~]# chkconfig postgresql on
    [root@mm2020 ~]# chkconfig --list
    
    Note: This output shows SysV services only and does not include native
          systemd services. SysV configuration data might be overridden by native
          systemd configuration.
    
          If you want to list systemd services use 'systemctl list-unit-files'.
          To see services enabled on particular target use
          'systemctl list-dependencies [target]'.
    
    netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
    network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
    postgresql      0:off   1:off   2:on    3:on    4:on    5:on    6:off
    rhnsd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
    vmware-tools    0:off   1:off   2:on    3:on    4:on    5:on    6:off

    2.6 设置监听

     Linux修改PostgreSQL外部访问白名单,先关闭防火墙,或者开放默认端口5432

    //主要修改两个配置文件
    PGDATA=/usr/local/pgsql/data
    
    $PGDATA/pg_hba.conf
    $PGDATA/postgresql.conf
    
    //文件 pg_hba.conf
    修改IPv4配置
    //原设置
    # IPv4 local connections:
    host    all             all             127.0.0.1/32            trust
    //可更改配置
    //IP全匹配
    # IPv4 local connections:
    host    all             all             192.168.1.21/32         trust
    //IP匹配前三段
    # IPv4 local connections:
    host    all             all             192.168.1.21/24         trust
    //全部允许
    # IPv4 local connections:
    host    all             all             0.0.0.0/0               trust
    
    //文件 postgresql.conf
    修改监听配置
    //原设置
    # - Connection Settings -
    
    #listen_addresses = 'localhost'         # what IP address(es) to listen on;
                                            # comma-separated list of addresses;
                                            # defaults to 'localhost'; use '*' for all
                                            # (change requires restart)
    #port = 5432                            # (change requires restart)
    //可更改配置
    # - Connection Settings -
    
     listen_addresses = '*'
     port = 5432     

    重启pg服务生效

    [root@mm2020 ~]# service postgresql status
    pg_ctl: server is running (PID: 84601)
    /usr/local/pgsql/bin/postgres "-D" "/usr/local/pgsql/data"
    
    [root@mm2020 ~]# service postgresql restart
    Restarting PostgreSQL: ok

     示例测试网络连接

    [postgres@mm2020 ~]$ cat $PGDATA/pg_hba.conf | grep trust
      host    all             all             127.0.0.1/32            trust
    [postgres@mm2020 ~]$ psql -h 192.168.1.21 -d test -U postgres -p 5432
    psql: FATAL:  no pg_hba.conf entry for host "192.168.1.21", user "postgres", database "test"
    
    [root@mm2020 ~]# service postgresql restart
    Restarting PostgreSQL: ok
    
    [postgres@mm2020 ~]$ cat $PGDATA/pg_hba.conf | grep trust
      host    all             all             0.0.0.0/0               trust
    [postgres@mm2020 ~]$ psql -h 192.168.1.21 -d test -U postgres -p 5432
    psql (9.6.0)
    Type "help" for help.
    
    test=# \q
    [postgres@mm2020 ~]$ 

    先测试到这里。

    至此,PG单实例测试完成。

    如有转载,请标明出处。

    我报路长嗟日暮,学诗谩有惊人句。 九万里风鹏正举。风休住,蓬舟吹取三山去!
  • 相关阅读:
    整形数组与字符串(字符数组)nex_permutation(或者是prve_permutation)的区别
    Dijkstra算法
    弗洛伊德算法(Floyd)
    Happy 2006
    EVENTTARGET 、EVENTARGUMENT 和VIEWSTATE
    C# App.config全攻略
    C#对Excel的样式操作
    Web.Config全攻略
    C# Setting.settings .
    UVa 10050 Hartals
  • 原文地址:https://www.cnblogs.com/yuweijade/p/13922619.html
Copyright © 2020-2023  润新知