SoFunction
Updated on 2025-03-03

Tutorials for installing PostgreSQL 9.6 under CentOS 7

Preface

PostgreSQL is a powerful open source object-relational database system that can run on almost all major operating systems, including Linux, Unix (AIX, BSD, HP-UX, SGI IRIX, Mac OS, Solaris, Tru64), and Windows OS. For new projects I highly recommend using PostgreSQL. Here we will briefly organize the installation process under CentOS.

The source of CentOS comes with PostgreSQL, which can be passedyum list | grep postgresql Check out the version that comes with the system. I saw version 9.2 here. I personally recommend installing an updated version.

Install

1. Install yum source (address from/Get it)

yum install /pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.

The latest version 9.6 is selected here, and it will be used after installation.yum updateUpdate source information and then use ityum list | grep postgresql , is there already the latest version of postgresql?

[root@localhost ~]# yum list|grep postgresql
calligra-kexi-driver-postgresql.x86_64 2.9.10-1.el7     epel  
collectd-postgresql.x86_64    5.6.0-1.el7     epel  
freeradius-postgresql.x86_64   3.0.4-6.el7     base  
libreoffice-postgresql.x86_64   1:4.3.7.2-5.el7_2.1   updates 
    9.3.4-2.el7     epel  
    9.3.4-2.el7     epel  
opendbx-postgresql.x86_64    1.4.6-6.el7     epel  
opensips-postgresql.x86_64    1.10.5-3.el7     epel  
    9.0.4-1.el7     epel  
pcp-pmda-postgresql.x86_64    3.10.6-2.el7     base  
pdns-backend-postgresql.x86_64   3.4.10-1.el7     epel  
perdition-postgresql.x86_64    2.1-5.el7      epel  
postgresql.i686       9.2.15-1.el7_2     updates 
postgresql.x86_64      9.2.15-1.el7_2     updates 
postgresql-contrib.x86_64    9.2.15-1.el7_2     updates 
postgresql-devel.i686     9.2.15-1.el7_2     updates 
postgresql-devel.x86_64     9.2.15-1.el7_2     updates 
postgresql-docs.x86_64     9.2.15-1.el7_2     updates 
     9.4.1212-1.rhel7    pgdg96 
   9.4.1212-1.rhel7    pgdg96 
postgresql-libs.i686     9.2.15-1.el7_2     updates 
postgresql-libs.x86_64     9.2.15-1.el7_2     updates 
postgresql-odbc.x86_64     09.03.0100-2.el7    base  
postgresql-pgpool-II.x86_64    3.4.6-1.el7     epel  
postgresql-pgpool-II-devel.x86_64  3.4.6-1.el7     epel  
postgresql-pgpool-II-extensions.x86_64 3.4.6-1.el7     epel  
postgresql-plperl.x86_64    9.2.15-1.el7_2     updates 
postgresql-plpython.x86_64    9.2.15-1.el7_2     updates 
postgresql-plruby.x86_64    0.5.3-13.el7     epel  
postgresql-plruby-doc.x86_64   0.5.3-13.el7     epel  
postgresql-pltcl.x86_64     9.2.15-1.el7_2     updates 
postgresql-server.x86_64    9.2.15-1.el7_2     updates 
postgresql-test.x86_64     9.2.15-1.el7_2     updates 
postgresql-unit96.x86_64    1.0-1.rhel7     pgdg96 
postgresql-unit96-debuginfo.x86_64  1.0-1.rhel7     pgdg96 
postgresql-upgrade.x86_64    9.2.15-1.el7_2     updates 
postgresql96.x86_64      9.6.1-1PGDG.rhel7    pgdg96 
postgresql96-contrib.x86_64    9.6.1-1PGDG.rhel7    pgdg96 
postgresql96-debuginfo.x86_64   9.6.1-1PGDG.rhel7    pgdg96 
postgresql96-devel.x86_64    9.6.1-1PGDG.rhel7    pgdg96 
postgresql96-docs.x86_64    9.6.1-1PGDG.rhel7    pgdg96 
postgresql96-libs.x86_64    9.6.1-1PGDG.rhel7    pgdg96 
postgresql96-odbc.x86_64    09.05.0400-1PGDG.rhel7   pgdg96 
postgresql96-plperl.x86_64    9.6.1-1PGDG.rhel7    pgdg96 
postgresql96-plpython.x86_64   9.6.1-1PGDG.rhel7    pgdg96 
postgresql96-pltcl.x86_64    9.6.1-1PGDG.rhel7    pgdg96 
postgresql96-python.x86_64    4.2-1PGDG.rhel7    pgdg96 
postgresql96-python-debuginfo.x86_64 4.2-1PGDG.rhel7    pgdg96 
postgresql96-server.x86_64    9.6.1-1PGDG.rhel7    pgdg96 
postgresql96-tcl.x86_64     2.1.1-1.rhel7     pgdg96 
postgresql96-tcl-debuginfo.x86_64  2.1.1-1.rhel7     pgdg96 
postgresql96-test.x86_64    9.6.1-1PGDG.rhel7    pgdg96 
proftpd-postgresql.x86_64    1.3.5b-2.el7     epel  
  1.1.0-2.el7     epel  
qt-postgresql.i686      1:4.8.5-12.el7_2    updates 
qt-postgresql.x86_64     1:4.8.5-12.el7_2    updates 
qt5-qtbase-postgresql.x86_64   5.6.1-3.el7     epel  
soci-postgresql.x86_64     3.2.3-1.el7     epel  
soci-postgresql-devel.x86_64   3.2.3-1.el7     epel

2. Install PostgreSQL

The most core here is to install postgresql96-server and postgresql96-contrib, where the "contrib" package contains some commonly used components and methods.

yum install postgresql96-server postgresql96-contrib

After installation, the executable file is in /usr/pgsql-9.5/bin/, and the data and configuration file is in /var/lib/pgsql/9.6/data/

3. Initialize the database

/usr/pgsql-9.6/bin/postgresql96-setup initdb

4. By default, PostgreSQL does not support password login. If you need to support it, you need to modify the configuration file.

vi /var/lib/pgsql/9.6/data/pg_hba.conf

Replace ident in uncommented line with md5

# TYPE DATABASE  USER   ADDRESS     METHOD
 
# "local" is for Unix domain socket connections only
local all    all          peer
# IPv4 local connections:
host all    all    127.0.0.1/32   ident
# IPv6 local connections:
host all    all    ::1/128     ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication  postgres        peer
#host replication  postgres  127.0.0.1/32   ident
#host replication  postgres  ::1/128     ident

To enable remote access, edit the /var/lib/pgsql/9.6/data/ file.

Will#listen_addresses = 'localhost'Modified tolisten_addresses='*'(Of course, here '*' can also be changed to any server IP you want to open)

In addition, for specific IPs, you can also set the trust remote connection to enable, modify /var/lib/pgsql/9.6/data/pg_hba.conf, and add settings in the following format.

# IPv4 local connections:
 host all   all  127.0.0.1/32  trust
 host all   all  8.8.8.8/32(The server that needs to be connected toIP) trust

Don't forget to restart the service after modifying the configuration.

5. Management services, like other services, still use systemd for management

systemctl start postgresql-9.6 #Start the servicesystemctl restart postgresql-9.6 #Restart the servicesystemctl stop postgresql-9.6 #Stop servicesystemctl enable postgresql-9.6 #Automatic start

6. Log in to PostgreSQL

After the PostgreSQL installation is completed, a ‘postgres’ user will be established to execute PostgreSQL. A ‘postgres’ user will be established in the database. If we want to use PostgreSQL, we must first log in to this account.

sudo -i -u postgres

After execution, the prompt will change to ‘-bash-4.2$’ and then run

Isomorphic execution enters psql and enters the postgresql command line environment.

[root@localhost ~]# sudo -i -u postgres
-bash-4.2$ psql
psql (9.6.1)
Type "help" for help.
 
postgres=#

Then it can be executedALTER USER postgres WITH PASSWORD '123456' To set the postgres user password, you can exit the database through \q .

7. Open the firewall

The PostgreSQL service is built into the CentOS firewall. The configuration file location is in /usr/lib/firewalld/services/. Just open the PostgreSQL service in a service manner.

firewall-cmd --add-service=postgresql --permanent openpostgresqlServe
firewall-cmd --reload Reloaded firewall

Summarize

The above is the entire content of this article. I hope the content of this article will be of some help to your study or work. If you have any questions, you can leave a message to communicate.