曹旭辉 发表于 2024-6-15 01:39:58

Linux 上安装PostgreSQL-源码编译安装(超具体版!!!)



一.服务器资源设置



[*]服务器:CentOS Linux 7 (Core),4CPU 8GB  100GB磁盘。
   最小设置


[*]CPU: 至少 2 焦点
[*]内存: 至少 2 GB
[*]硬盘: 至少 10 GB 空间,推荐使用 SSD 以提高性能
[*]网络: 100 Mbps
[*]场景:这种设置适用于轻量级的测试,如功能验证、小型应用的开发等。

推荐设置


[*]CPU: 4 焦点或以上
[*]内存: 8 GB 或以上
[*]硬盘: 50 GB 或更多的 SSD 空间
[*]网络: 1 Gbps
[*]场景: 这种设置适用于更加靠近生产环境的测试,包罗性能测试、大规模数据处置惩罚等。
二.官网postgresql 安装包先容



[*]下载地址
   PostgreSQL: File Browser
https://img-blog.csdnimg.cn/direct/9d85c2a019b7484db9ca5b8159cb4a42.png
这六个文件分别是 PostgreSQL 14.6 版本的源代码压缩包及其相关的校验文件。以下是它们之间的区别:
1.postgresql-14.6.tar.bz2:这是 PostgreSQL 14.6 版本的源代码压缩包,使用 bzip2 压缩。可以使用该文件进行手动编译和安装 PostgreSQL。
2.postgresql-14.6.tar.bz2.md5:这个文件包罗了 postgresql-14.6.tar.bz2 文件的 MD5 校验值,用于验证下载文件的完备性。可以使用 md5sum 工具来验证文件的 MD5 值。
3.postgresql-14.6.tar.bz2.sha256:这个文件包罗了 postgresql-14.6.tar.bz2 文件的 SHA-256 校验值,用于验证下载文件的完备性。可以使用 sha256sum 工具来验证文件的 SHA-256 值。
4.postgresql-14.6.tar.gz:这是 PostgreSQL 14.6 版本的源代码压缩包,使用 gzip 压缩。可以使用该文件进行手动编译和安装 PostgreSQL。
5.postgresql-14.6.tar.gz.md5:这个文件包罗了 postgresql-14.6.tar.gz 文件的 MD5 校验值,用于验证下载文件的完备性。可以使用 md5sum 工具来验证文件的 MD5 值。
6.postgresql-14.6.tar.gz.sha256:这个文件包罗了 postgresql-14.6.tar.gz 文件的 SHA-256 校验值,用于验证下载文件的完备性。可以使用 sha256sum 工具来验证文件的 SHA-256 值。
通常情况下,可以选择下载其中一个 .tar.bz2 或 .tar.gz 的压缩包,然后使用相应的校验文件(.md5 或 .sha256)验证下载的文件是否完备。.bz2 和 .gz 分别是两种不同的压缩格式,它们在本质上是不同的压缩算法。在选择使用哪一种格式的安装包时,主要的思量因素包罗压缩率、解压速率、以及个人的偏好。
1..bz2(Bzip2)格式:


[*]压缩率: 通常情况下,Bzip2 压缩算法提供了相对较高的压缩率,可以天生较小的文件。
[*]解压速率: Bzip2 解压速率相对较慢,但这大概不是在解压缩 PostgreSQL 源代码时的关键因素。
[*]使用场景: 适用于希望文件体积尽大概小的情况,例如在网络上下载文件,以减小传输时间和节省带宽。
[*]解压命令:tar -jxvf  postgresql-14.6.tar.bz2
2. .gz(Gzip)格式:


[*]压缩率: Gzip 也提供了很好的压缩率,虽然通常略逊于 Bzip2,但在大多数情况下仍然足够。
[*]解压速率: Gzip 的解压速率相对较快,这使得它在现实使用中更为广泛。
[*]使用场景: 适用于需要在短时间内解压大文件的情况,例如在安装软件时。
[*]解压命令:tar -zxvf postgresql-14.6.tar.gz
三.官网postgresql 安装包下载 

   #Linux执行如下语句1:

#  yum -y install wget

#  wget https://ftp.postgresql.org/pub/source/v14.6/postgresql-14.6.tar.gz



[*]这个命令安装 wget,这是一个广泛使用的命令行工具,用于从网络下载文件。
[*]wget 支持 HTTP、HTTPS 和 FTP 协议,可以或许在下载过程中处置惩罚重定向、署理、认证等。
[*]在安装 PostgreSQL 时,如果需要从互联网下载安装包或其他资源,wget 是一个非常实用的工具。
https://img-blog.csdnimg.cn/direct/39c070263ce24de5a73a113d8247543b.png
   错误提示:
“ERROR: cannot verify ftp.postgresql.org's certificate, issued by ‘/C=US/O=Let's Encrypt/CN=R3’: Issued certificate has expired.”
是一个 SSL 证书验证错误。这个错误发生的缘故原由是 wget 在实行通过 HTTPS 连接到 ftp.postgresql.org 时,发现该网站的 SSL 证书已经逾期,因此无法确认连接的安全性。
缘故原由剖析:

[*] 逾期的 SSL 证书:

[*]网站的 SSL 证书是用来加密网站与访问者之间通信的,它必须是有效且未逾期的。如果证书逾期,客户端(如 wget)将无法验证服务器的身份,从而导致安全告诫。

[*] wget 的安全机制:

[*]出于安全思量,wget 默认不会从一个使用无效或逾期证书的服务器下载数据。这是为了防止中心人攻击和数据泄漏。

解决方案:
    #Linux执行如下语句2:

#  yum install -y ca-certificates



[*]这个命令安装 ca-certificates 软件包,它包罗了一系列的证书授权(CA)证书。
[*]这些证书对于许多网络操纵非常紧张,因为它们使得系统可以或许验证和信任通过 HTTPS 等安全协议传输的数据。
[*]在下载和安装 PostgreSQL 或其他软件时,如果需要通过 HTTPS 从互联网上获取数据,那么 ca-certificates 包是必要的,因为它可以或许包管与长途服务器的安全通信。
以上预备好了,即可从官网下载安装包。
   #Linux执行如下语句3:

#  wget https://ftp.postgresql.org/pub/source/v14.6/postgresql-14.6.tar.gz

https://img-blog.csdnimg.cn/direct/d56f1fffcd2b4d53b7a25e73d06a82b6.png
备注:也可直接下载安装包到本地,然后上传到服务器上。
四.安装所需的依赖包

   #Linux执行如下语句4:

#  yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel python-devel gcc-c++ openssl-devel cmake

https://img-blog.csdnimg.cn/direct/87908455444d451e98933ba7484155e5.png
https://img-blog.csdnimg.cn/direct/061c67c712fb4fb599bcfd75db7225a2.png
依赖包说明如下:
序号依赖包名称说明1perl-ExtUtils-Embed这个包用于嵌入Perl代码到C程序中。在PostgreSQL中,它大概被用于某些与Perl相关的扩展或自定义脚本功能。2readline-devel这是readline库的开发版本,提供了命令行编辑和汗青记载的功能。对于PostgreSQL,它使得使用交互式命令行工具(如psql)更加方便。3zlib-devel这是zlib压缩库的开发版本,用于数据压缩息争压缩。在PostgreSQL中,它用于优化数据存储和传输。4pam-devel这是Pluggable Authentication Modules(PAM)的开发包,用于集成多种认证技术。在PostgreSQL中,PAM可以用于用户认证。5libxml2-devel这是libxml2库的开发版本,它提供了XML的支持。在PostgreSQL中,它用于处置惩罚XML数据格式的功能。6libxslt-devel这是libxslt库的开发版本,用于XSLT转换。在PostgreSQL中,大概用于转换XML数据。7openldap-devel这是OpenLDAP的开发包,用于LDAP协议的支持。在PostgreSQL中,它可以用于集成LDAP-based的用户认证。8python-devel这是Python语言的开发包,大概用于支持Python编写的数据库脚本或扩展。9gcc-c++这是GNU C++编译器,用于编译C++代码。它大概用于编译PostgreSQL中的某些C++编写的部门或扩展。10openssl-devel这是OpenSSL库的开发版本,提供加密和SSL/TLS支持。在PostgreSQL中,它用于确保数据传输的安全性。11cmake这是一个跨平台的安装(构建)系统,用于控制软件编译和测试的过程。在某些PostgreSQL的扩展或自定义安装中大概会用到。 五.源码编译安装



[*]创建文件夹,将postgresql的压缩包移入
   #Linux执行如下语句5:

# mkdir /soft
# mv postgresql-14.6.tar.gz  /soft/
# cd /soft/
# ls
postgresql-14.6.tar.gz



[*]解压压缩包到目录中
   #Linux执行如下语句6:

# tar -zxvf postgresql-14.6.tar.gz
postgresql-14.6/
postgresql-14.6/.dir-locals.el
postgresql-14.6/contrib/
postgresql-14.6/contrib/tcn/
postgresql-14.6/contrib/tcn/tcn.control
postgresql-14.6/contrib/tcn/Makefile
postgresql-14.6/contrib/tcn/tcn.c
...
postgresql-14.6/doc/KNOWN_BUGS
postgresql-14.6/doc/Makefile
postgresql-14.6/doc/TODO
postgresql-14.6/doc/MISSING_FEATURES
postgresql-14.6/HISTORY
postgresql-14.6/Makefile
postgresql-14.6/README
postgresql-14.6/COPYRIGHT
postgresql-14.6/GNUmakefile.in
postgresql-14.6/.gitattributes
postgresql-14.6/aclocal.m4
postgresql-14.6/INSTALL
 


[*]进入解压后的文件夹
   #Linux执行如下语句7:

# cd postgresql-14.6
# ls
aclocal.m4  config  configure  configure.ac  contrib  COPYRIGHT  doc  GNUmakefile.in  HISTORY  INSTALL  Makefile  README  src


[*]创建postgresql的目录,编译postgresql源码
   #Linux执行如下语句8:

#  mkdir -p /opt/pgsql/postgresql

# ./configure --prefix=/opt/pgsql/postgresql
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 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... 8kB
checking for gcc... gcc
...
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/posix_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/include/port/linux.h to src/include/pg_config_os.h
config.status: linking src/makefiles/Makefile.linux to src/Makefile.port

###注意事项: –prefix=prefix 安装到prefix指向的目录;默以为/usr/local/pgsql


[*]源码编译安装
   #Linux执行如下语句9:
# make
make -C ./src/backend generated-headers
make: Entering directory `/soft/postgresql-14.6/src/backend'
make -C catalog distprep generated-header-symlinks
make: Entering directory `/soft/postgresql-14.6/src/backend/catalog'
make: Nothing to be done for `distprep'.
prereqdir=`cd './' >/dev/null && pwd` && \
...
make: Leaving directory `/soft/postgresql-14.6/src/test/isolation'
make -C test/perl all
make: Entering directory `/soft/postgresql-14.6/src/test/perl'
make: Nothing to be done for `all'.
make: Leaving directory `/soft/postgresql-14.6/src/test/perl'
make: Leaving directory `/soft/postgresql-14.6/src'
make -C config all
make: Entering directory `/soft/postgresql-14.6/config'
make: Nothing to be done for `all'.
make: Leaving directory `/soft/postgresql-14.6/config'

# make install
make -C ./src/backend generated-headers
make: Entering directory `/soft/postgresql-14.6/src/backend'
make -C catalog distprep generated-header-symlinks
make: Entering directory `/soft/postgresql-14.6/src/backend/catalog'
make: Nothing to be done for `distprep'.
make: Nothing to be done for `generated-header-symlinks'.
make: Leaving directory `/soft/postgresql-14.6/src/backend/catalog'
make -C utils distprep generated-header-symlinks
make: Entering directory `/soft/postgresql-14.6/src/backend/utils'
make: Nothing to be done for `distprep'.
make: Nothing to be done for `generated-header-symlinks'.
make: Leaving directory `/soft/postgresql-14.6/src/backend/utils'
make: Leaving directory `/soft/postgresql-14.6/src/backend'
...
/usr/bin/install -c -m 644 ./nls-global.mk '/opt/pgsql/postgresql/lib/pgxs/src/nls-global.mk'
make: Leaving directory `/soft/postgresql-14.6/src'
make -C config install
make: Entering directory `/soft/postgresql-14.6/config'
/usr/bin/mkdir -p '/opt/pgsql/postgresql/lib/pgxs/config'
/usr/bin/install -c -m 755 ./install-sh '/opt/pgsql/postgresql/lib/pgxs/config/install-sh'
/usr/bin/install -c -m 755 ./missing '/opt/pgsql/postgresql/lib/pgxs/config/missing'
make: Leaving directory `/soft/postgresql-14.6/config'
 


[*]完成postgreql的安装。进入/pgsql/postgresql目录看安装后的postgresql的文件。
   #Linux执行如下语句10:

#  cd /opt/pgsql/postgresql/
# pwd
/opt/pgsql/postgresql
# ls
bin include lib share

六.创建用户和用户组



[*]创建用户组postgres、用户postgres
   #Linux执行如下语句11:

# groupadd postgres
# useradd -g postgres postgres
# id postgres
uid=1000(postgres) gid=1000(postgres) groups=1000(postgres)
 
七.创建数据主目录



[*]#创建postgresql数据库的数据主目录并修改文件所有者
[*]数据库主目录是随现实情况而不同,这里的主目录是在/pgsql/postgresql/data目录下
   #Linux执行如下语句12:

# cd /opt/pgsql/postgresql
#  mkdir data
# chown postgres:postgres data
# ls -la
total 16
drwxr-xr-x 7 root     root       68 Dec 13 14:53 .
drwxr-xr-x 3 root     root       24 Dec 13 14:40 ..
drwxr-xr-x 2 root     root     4096 Dec 13 14:52 bin
drwxr-xr-x 2 postgres postgres    6 Dec 13 14:53 data
drwxr-xr-x 6 root     root     4096 Dec 13 14:52 include
drwxr-xr-x 4 root     root     4096 Dec 13 14:52 lib
drwxr-xr-x 6 root     root     4096 Dec 13 14:52 share
 
八.设置环境变量



[*]进入home/postgres目录可以看到.bash_profile文件。
   #Linux执行如下语句13:

# cd /home/postgres/
# ls -la
total 12
drwx------  2 postgres postgres  62 Dec 13 14:53 .
drwxr-xr-x. 3 root     root      22 Dec 13 14:53 ..
-rw-r--r--  1 postgres postgres  18 Apr 11  2018 .bash_logout
-rw-r--r--  1 postgres postgres 193 Apr 11  2018 .bash_profile
-rw-r--r--  1 postgres postgres 231 Apr 11  2018 .bashrc
 


[*]修改.bash_profile文件。
   #Linux执行如下语句14:

# vi .bash_profile
# cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH

export PGHOME=/opt/pgsql/postgresql
export PGDATA=$PGHOME/data
export PATH=$PATH:$HOME/bin:$PGHOME/bin
 


[*]保存,退出vi。执行以下命令,使环境变量生效
   #Linux执行如下语句15:

# source .bash_profile

九.initdb初使化数据库



[*]切换用户到postgres并使用initdb初使化数据库
   #Linux执行如下语句16:

# su - postgres

$ initdb
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 /opt/pgsql/postgresql/data ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... PRC
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok
initdb: 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 /opt/pgsql/postgresql/data -l logfile start
 


[*]查看/pgsql/postgresql/data目录,看是否初始化成功
   #Linux执行如下语句17:

$ ls -lh $PGDATA
total 56K
drwx------ 5 postgres postgres   41 Dec 13 14:55 base
drwx------ 2 postgres postgres 4.0K Dec 13 14:55 global
drwx------ 2 postgres postgres    6 Dec 13 14:55 pg_commit_ts
drwx------ 2 postgres postgres    6 Dec 13 14:55 pg_dynshmem
-rw------- 1 postgres postgres 4.7K Dec 13 14:55 pg_hba.conf
-rw------- 1 postgres postgres 1.6K Dec 13 14:55 pg_ident.conf
drwx------ 4 postgres postgres   68 Dec 13 14:55 pg_logical
drwx------ 4 postgres postgres   36 Dec 13 14:55 pg_multixact
drwx------ 2 postgres postgres    6 Dec 13 14:55 pg_notify
drwx------ 2 postgres postgres    6 Dec 13 14:55 pg_replslot
drwx------ 2 postgres postgres    6 Dec 13 14:55 pg_serial
drwx------ 2 postgres postgres    6 Dec 13 14:55 pg_snapshots
drwx------ 2 postgres postgres    6 Dec 13 14:55 pg_stat
drwx------ 2 postgres postgres    6 Dec 13 14:55 pg_stat_tmp
drwx------ 2 postgres postgres   18 Dec 13 14:55 pg_subtrans
drwx------ 2 postgres postgres    6 Dec 13 14:55 pg_tblspc
drwx------ 2 postgres postgres    6 Dec 13 14:55 pg_twophase
-rw------- 1 postgres postgres    3 Dec 13 14:55 PG_VERSION
drwx------ 3 postgres postgres   60 Dec 13 14:55 pg_wal
drwx------ 2 postgres postgres   18 Dec 13 14:55 pg_xact
-rw------- 1 postgres postgres   88 Dec 13 14:55 postgresql.auto.conf
-rw------- 1 postgres postgres  29K Dec 13 14:55 postgresql.conf
 
十.设置服务



[*] 修改/opt/pgsql/postgresql/data目录下postgresql.conf文件,该文件设置PostgreSQL数据库服务器的相应的参数。
   #Linux执行如下语句18:
$ cd /opt/pgsql/postgresql/data
 
$ vi postgresql.conf
$ cat  postgresql.conf
...
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*'          # 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)
max_connections = 100                   # (change requires restart)
 
...
注意:其中,参数“listen_addresses”表示监听的IP地址,默认是在localhost处监听,也就是127.0.0.1的ip地址上监听,只接受来自本机localhost的连接请求,这会让长途的主机无法登陆这台数据库,如果想从其他的呆板上登陆这台数据库,需要把监听地址改为现实网络的地址,一种简单的方法是,将行开头的#去掉,把这个地址改为*,表示在本地的所有地址上监听。


[*] 修改/opt/pgsql/postgresql/data目录下pg_hba.conf 文件,该文件 设置对数据库的访问权限。
   #Linux执行如下语句19:

$ vi pg_hba.conf
$ cat  pg_hba.conf
...
# 添加下面这一行 
# IPv4 local connections:
host    all             all             0.0.0.0/0               trust
host    all             all             127.0.0.1/32            trust
...
十一.设置开机自启动



[*]PostgreSQL的开机自启动脚本位于PostgreSQL源码目录的contrib/start-scripts路径下。linux文件即为linux系统上的启动脚本。需切换为root用户。
   #Linux执行如下语句20:
$ su root
# cd /soft/postgresql-14.6/contrib/start-scripts
# ls
freebsd  linux  macos
切换为root用户,修改linux文件属性,添加X属性
   #Linux执行如下语句21:

# chmod a+x linux
复制linux文件到/etc/init.d目录下,更名为postgresql
   #Linux执行如下语句22:

# cp linux /etc/init.d/postgresql
修改/etc/init.d/postgresql文件的两个变量
   #Linux执行如下语句23:

# vi /etc/init.d/postgresql
# cat  /etc/init.d/postgresql
...
## EDIT FROM HERE
# Installation prefix
#prefix=/usr/local/pgsql
prefix=/opt/pgsql/postgresql
# Data directory
#PGDATA="/usr/local/pgsql/data"
PGDATA="/opt/pgsql/postgresql/data"
...
设置postgresql服务开机自启动
   #Linux执行如下语句24:

# chkconfig --add postgresql
# chkconfig

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 '.
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
 
十二.设置防火墙



[*]安装依赖包
   #Linux执行如下语句25:

#  yum -y install firewalld



[*]设置防火墙
   #Linux执行如下语句26:

# systemctl start firewalld
# systemctl enable firewalld
# 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 Wed 2023-12-13 15:11:53 CST; 17s ago
     Docs: man:firewalld(1)
 Main PID: 20257 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─20257 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
Dec 13 15:11:53 localhost.localdomain systemd: Starting firewalld - dynamic firewall daemon...
Dec 13 15:11:53 localhost.localdomain systemd: Started firewalld - dynamic firewall daemon.
Dec 13 15:11:53 localhost.localdomain firewalld: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option


[*]添加postgresql服务到防火墙,并加载
   #Linux执行如下语句27:

# firewall-cmd --permanent --zone=public --add-service=postgresql
success
# firewall-cmd --reload
success


[*]查看端口是否开放
   #Linux执行如下语句28:

# /sbin/iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
INPUT_direct  all  --  0.0.0.0/0            0.0.0.0/0
INPUT_ZONES_SOURCE  all  --  0.0.0.0/0            0.0.0.0/0
INPUT_ZONES  all  --  0.0.0.0/0            0.0.0.0/0
DROP       all  --  0.0.0.0/0            0.0.0.0/0            ctstate INVALID
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
FORWARD_direct  all  --  0.0.0.0/0            0.0.0.0/0
FORWARD_IN_ZONES_SOURCE  all  --  0.0.0.0/0            0.0.0.0/0
FORWARD_IN_ZONES  all  --  0.0.0.0/0            0.0.0.0/0
FORWARD_OUT_ZONES_SOURCE  all  --  0.0.0.0/0            0.0.0.0/0
FORWARD_OUT_ZONES  all  --  0.0.0.0/0            0.0.0.0/0
DROP       all  --  0.0.0.0/0            0.0.0.0/0            ctstate INVALID
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
OUTPUT_direct  all  --  0.0.0.0/0            0.0.0.0/0
Chain FORWARD_IN_ZONES (1 references)
target     prot opt source               destination
FWDI_public  all  --  0.0.0.0/0            0.0.0.0/0          
Chain FORWARD_IN_ZONES_SOURCE (1 references)
target     prot opt source               destination
Chain FORWARD_OUT_ZONES (1 references)
target     prot opt source               destination
FWDO_public  all  --  0.0.0.0/0            0.0.0.0/0          
Chain FORWARD_OUT_ZONES_SOURCE (1 references)
target     prot opt source               destination
Chain FORWARD_direct (1 references)
target     prot opt source               destination
Chain FWDI_public (1 references)
target     prot opt source               destination
FWDI_public_log  all  --  0.0.0.0/0            0.0.0.0/0
FWDI_public_deny  all  --  0.0.0.0/0            0.0.0.0/0
FWDI_public_allow  all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
Chain FWDI_public_allow (1 references)
target     prot opt source               destination
Chain FWDI_public_deny (1 references)
target     prot opt source               destination
Chain FWDI_public_log (1 references)
target     prot opt source               destination
Chain FWDO_public (1 references)
target     prot opt source               destination
FWDO_public_log  all  --  0.0.0.0/0            0.0.0.0/0
FWDO_public_deny  all  --  0.0.0.0/0            0.0.0.0/0
FWDO_public_allow  all  --  0.0.0.0/0            0.0.0.0/0
Chain FWDO_public_allow (1 references)
target     prot opt source               destination
Chain FWDO_public_deny (1 references)
target     prot opt source               destination
Chain FWDO_public_log (1 references)
target     prot opt source               destination
Chain INPUT_ZONES (1 references)
target     prot opt source               destination
IN_public  all  --  0.0.0.0/0            0.0.0.0/0          
Chain INPUT_ZONES_SOURCE (1 references)
target     prot opt source               destination
Chain INPUT_direct (1 references)
target     prot opt source               destination
Chain IN_public (1 references)
target     prot opt source               destination
IN_public_log  all  --  0.0.0.0/0            0.0.0.0/0
IN_public_deny  all  --  0.0.0.0/0            0.0.0.0/0
IN_public_allow  all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
Chain IN_public_allow (1 references)
target     prot opt source               destination
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22 ctstate NEW,UNTRACKED
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:5432 ctstate NEW,UNTRACKED
Chain IN_public_deny (1 references)
target     prot opt source               destination
Chain IN_public_log (1 references)
target     prot opt source               destination
Chain OUTPUT_direct (1 references)
target     prot opt source               destination
 
十三.启动数据库服务



[*]启动PostgreSQL服务
   #Linux执行如下语句29:

# service postgresql start
Starting PostgreSQL: ok
 


[*]查看PostgreSQL服务,确认是否启动成功
   #Linux执行如下语句30:

# ps -ef | grep postgres
root     20099  9787  0 14:55 pts/0    00:00:00 su - postgres
postgres 20100 20099  0 14:55 pts/0    00:00:00 -bash
postgres 20424     1  0 15:13 ?        00:00:00 /opt/pgsql/postgresql/bin/postmaster -D /opt/pgsql/postgresql/data
postgres 20426 20424  0 15:13 ?        00:00:00 postgres: checkpointer
postgres 20427 20424  0 15:13 ?        00:00:00 postgres: background writer
postgres 20428 20424  0 15:13 ?        00:00:00 postgres: walwriter
postgres 20429 20424  0 15:13 ?        00:00:00 postgres: autovacuum launcher
postgres 20430 20424  0 15:13 ?        00:00:00 postgres: stats collector
postgres 20431 20424  0 15:13 ?        00:00:00 postgres: logical replication launcher
# netstat -ltnup | grep post
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      20424/postmaster
tcp6       0      0 :::5432                 :::*                    LISTEN      20424/postmaster
 

十四.测试本地连接



[*]切换设置的postgres用户
   #Linux执行如下语句31:

# su - postgres
Last login: Wed Dec 13 15:13:04 CST 2023 on pts/0
$  psql
psql (14.6)
Type "help" for help.
postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(3 rows)
postgres=#
postgres=#
postgres=#
 
十五.测试长途连接(navicat工具)





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Linux 上安装PostgreSQL-源码编译安装(超具体版!!!)