PostgreSQL 13 : Install2021/06/25 |
Install PostgreSQL to configure database server.
|
|
[1] | Install and start PostgreSQL. |
[root@www ~]#
[root@www ~]# dnf module -y install postgresql:13 postgresql-setup --initdb * Initializing database in '/var/lib/pgsql/data' * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log[root@www ~]# systemctl enable --now postgresql |
[2] | By default setting, it's possible to connect to PostgreSQL Server only from Localhost with [peer] authentication. Refer to the official site below about details of authentication methods. ⇒ https://www.postgresql.jp/document/10/html/auth-pg-hba-conf.html |
# listen only localhost by default [root@www ~]# grep listen_addresses /var/lib/pgsql/data/postgresql.conf #listen_addresses = 'localhost' # what IP address(es) to listen on; # authentication methods by default [root@www ~]# grep -v -E "^#|^$" /var/lib/pgsql/data/pg_hba.conf local all all peer host all all 127.0.0.1/32 ident host all all ::1/128 ident local replication all peer host replication all 127.0.0.1/32 ident host replication all ::1/128 ident |
[3] | On [peer] authentication, it needs OS user and PostgreSQL user whose name are the same to connect to PostgreSQL Server. |
# add an PostgreSQL user and his Database with PostgreSQL admin user [root@www ~]# su - postgres [postgres@www ~]$ createuser cent [postgres@www ~]$ createdb testdb -O cent
# show users and databases [postgres@www ~]$ psql -c "select usename from pg_user;"
usename ---------- postgres cent (2 rows)[postgres@www ~]$ psql -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 testdb | cent | UTF8 | en_US.UTF-8 | en_US.UTF-8 | (4 rows) |
[4] | Try to connect to PostgreSQL Database with a user added above. |
# connect to testdb [cent@www ~]$ psql testdb psql (13.3) Type "help" for help. # show user roles testdb=> \du List of roles Role name | Attributes | Member of -----------+------------------------------------------------------------+----------- cent | | {} postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {} # show databases testdb=> \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 testdb | cent | UTF8 | en_US.UTF-8 | en_US.UTF-8 | (4 rows) # create a test table testdb=> create table test_table (no int, name text); CREATE TABLE # show tables testdb=> \dt List of relations Schema | Name | Type | Owner --------+------------+-------+------- public | test_table | table | cent (1 row) # insert data to test table testdb=> insert into test_table (no,name) values (01,'CentOS'); INSERT 0 1 # confirm testdb=> select * from test_table; no | name ----+-------- 1 | CentOS (1 row) # remove test table testdb=> drop table test_table; DROP TABLE testdb=> \dt Did not find any relations. # exit testdb=> \q # remove testdb [cent@www ~]$ dropdb testdb [cent@www ~]$ psql -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) |
Sponsored Link |