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单实例测试完成。

如有转载,请标明出处。

Linux(Redhat 7.6)安装PG(Postgresql 9.6.0)的更多相关文章

  1. Oracle安装部署之linux(redhat/centos)快速安装oracle 11g rac

    安装oracle 11gR2 RAC 一.网络规划及安装虚拟主机 主机名 主机版本 Ip rac1.localdomain Redhat 6.5 RAC节点1 192.168.100.11 rac2. ...

  2. linux redhat下oracle11G安装

    首先由于使用的是虚拟机,所有要修改ip 在LINUX下修改IP分为二种情况, 1.调试时修改IP,仅在当前生效,重启后恢复为原有IP ifconfig eth0 192.168.63.27 netma ...

  3. Linux redhat ICE环境安装

    1.安装64位redhat6.4操作系统(客户机为64位)为软件开发工作站模式. 2.卸载yum源,重新安装为免费的CentOS6.4 yum源(yum能解决软件安装中的包依赖问题,redhat 未注 ...

  4. Linux(Redhat)下redis安装

    原文:http://www.javaweb1024.com/data/NoSQL/2015/06/29/785.html redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系 ...

  5. 在 Linux RedHatEL6 环境下安装配置 JDK1.7 + Tomcat7.0 + MySQL5.6

    RedHatEL6 JDK安装路径: /usr/java/jdk1.7 Tomcat安装路径:/usr/local/tomcat7/ MySQL安装路径: /usr/local/mysql 总共分为以 ...

  6. Linux中基于hadoop安装hive(CentOS7+hadoop2.8.0+hive2.1.1)

    http://blog.csdn.net/pucao_cug/article/details/71773665

  7. Oracle Linux 6.3下安装Oracle 11g R2(11.2.0.3)

    本文主要描写叙述了在Oracle Linux 6.3下安装Oracle 11gR2(11.2.0.3).从Oracle 11g開始,Oracle官方站点不再提供其Patch的下载链接,须要使用Meat ...

  8. 【Oracle RAC】Linux系统Oracle12c RAC安装配置详细记录过程V2.0(图文并茂)

    [Oracle RAC]Linux系统Oracle12c RAC安装配置详细过程V2.0(图文并茂) 2 Oracle12c RAC数据库安装准备工作2.1 安装环境介绍2.2 数据库安装软件下载3 ...

  9. 关于RedHat Linux无法使用yum命令安装gcc-c++问题

    初入职场,在给RedHat Linux安装环境的时候遇到这么个问题. 参考:http://www.linuxidc.com/Linux/2017-08/146548.htm [root@localho ...

  10. Linux Redhat 安装免费yum源

    Linux Redhat 安装免费yum源 出处地址:http://www.cnblogs.com/nbartchen/p/8565816.html 1.查看是否安装相关包 rpm -qa|grep ...

随机推荐

  1. stm32 F103C8T6 4x4矩阵键盘使用

    首先感谢 江科大 的stm32入门课程 受益匪浅.推荐有兴趣的朋友去看看. 先看看我用的矩阵键盘是啥样的(很常见的一种) 接线如图(其他型号根据自己需求接上GPIO口) 代码基于stm大善人的代码修改 ...

  2. 免费word简历 简历制作平台

    分享一个简历制作平台. 免费的word模版 链接地址 https://www.xyjianli.com/ https://www.xyjianli.com/list https://www.xyjia ...

  3. quartz监控日志(四)自定义QuartzJobBean来实现监控

    quartz监控日志(一) quartz监控日志(二)添加监听器 quartz监控日志(三)查看卡死线程堆栈 上面几章介绍了quartz监控的几种方式,下面再介绍一种监听方式:自定义QuartzJob ...

  4. ARM架构及ARM指令集、Thumb指令集你了解多少?

    https://www.sohu.com/a/339622340_100281310 1991 年ARM 公司成立于英国剑桥,在成立后的那几年,ARM业绩平平,工程师们也人心惶惶,害怕随时都会失业.在 ...

  5. 22张图详解浏览器请求数据包如何到达web服务器(搞懂网络可以毕业了)

    浏览器的请求数据包如何到达web服务器? 很多读者对于其中的完整流程不是特别的了解,下面一口君通过这22张图,详细的讲解我们点击浏览器的网址之后,数据包是如何经过重重险阻到达web server的. ...

  6. Linux入门的基础知识点,有这篇就够了(持续更新)

    很多粉丝给一口君留言,想要学习Linux资料,其实关注一口君的公众号,后台回复 1024 ,就有很多非常不错的电子书,但是有一个问题,很多粉丝是初学者,而这一大堆电子书,估计随便一本,还没看完就基本上 ...

  7. 【解决方法】libGL.so.1: cannot open shared object file: No such file or directory

    在配云端GPU服务器时,出现这个错误 File "/usr/local/lib/python3.6/dist-packages/cv2/__init__.py", line 8, ...

  8. 在DLL中封装模板类的问题

    在Dll中封装类是用定义一个宏来区分导出标识的 #ifdef DLLCLASS_EXPORTS #define DLL_CLASS _declspec(dllexport) //Dll #else # ...

  9. 1分钟掌握变速效果,让你的视频快慢自如----蓝松视频编辑SDK

       2. 变速调整默认速度是1X就是正常播放速度,可以通过调节滑块,实现视频中的慢镜头动作    3.只需一行代码设置播放速度/** 视频的播放速度; 范围是 0.1---10.0 默认1.0; 正 ...

  10. 线性dp:最长公共子序列

    最长公共子序列 本文讲解的题与leetcode1143.最长公共子序列这题一样,阅读完可以挑战一下. 力扣题目链接 题目叙述: 给定两个字符串,输出其最长公共子序列,并输出它的长度 输入: ADABE ...