Pärast PostgreSQLi paigaldamist CentOSile ja enne käivitamist nõutav esialgne konfiguratsioon.


Avaldamise kuupäev:17. detsember 2020.



INFOMARTION > Pärast PostgreSQLi paigaldamist CentOSile ja enne käivitamist nõutav esialgne konfiguratsioon.

Ülevaade.

See on esialgne konfiguratsiooniprotseduur, mis on vajalik PostgreSQLi paigaldamiseks ja käivitamiseks CentOSil. Teave põhineb eeldusel, et kasutatakse CentOS7. Lisatud on ka turvalisust käsitlev osa.

PostgreSQL on soovitatav, kuna see on tasuta ja väga funktsionaalne. Olen kuulnud, et PostgreSQLi funktsioonid olid varem aeglased, kuid viimased funktsioonid on paranenud ja on kiiremad.

Versioonid on järgmised.

CentOS versioon7.6 (1810)
PostgreSQLi versioon9.2.24

Sisukord

  1. paigaldada
  2. Seadistamise üksikasjad
  3. kokkuvõte

1. paigaldada

Selles jaotises kirjeldatakse PostgreSQLi paigaldamise korda.

1-1. PostgreSQL-i paigaldamine

Viige PostgreSQL-i paigaldamine läbi käsuga yum. Viige töö läbi root-kasutajana.

[username@hostname ~]$ su -
[root@hostname ~]# yum -y install postgresql-server

2. Seadistamise üksikasjad

Selles jaotises kirjeldatakse konfiguratsiooni kuni PostgreSQLi käivitamiseni.

2-1. Looge spetsiaalne PostgreSQL kasutaja.

Tahtsin luua spetsiaalse kasutaja PostgreSQL-i manipuleerimiseks (kasutada psql käske), kuid kasutaja oli juba loodud. Ma mäletan, et ma lõin kasutajaid, kui ma neid varem lõin, nii et võib-olla on spetsifikatsioon muutunud.

Proovige vahetada kasutajaks järgmise käsuga.

[root@hostname ~]# su - postgres

Kuna mõned inimesed võivad tõenäoliselt kasutada PostgreSQLi vanemat versiooni, tuleb mainida, et ka keskkonnamuutujate seadmise protseduur, milleks muudetakse ".bashrc", ei ole enam vajalik.

.bashrc


export PGHOME=/var/lib/pgsql
export PGDATA=/var/lib/pgsql/data
export PGHOST=localhost

Postgres'i kasutajate vaikimisi PGDATA on nüüd '/var/lib/pgsql/data'. Kirjeldatakse, et see viitab failile "/usr/lib/systemd/system/postgresql.service".

2-2. PostgreSQL andmete ettevalmistamine

Luua PostgreSQL andmed. Kodeering on UNICODE. Vaikimisi on loodud kataloog "/var/lib/pgsql/data", kuid ka need, kes seda ei ole teinud, peavad kausta looma.

-bash-4.2$ initdb --encoding=UNICODE

Kuna "PGDATA=/var/lib/pgsql/data" on määratud failis "/usr/lib/systemd/system/postgresql.service", siis loob "initdb --encoding=UNICODE" andmebaasi faili "/var/lib/pgsql/" alla. data/", andmebaas on ehitatud aadressile "/var/lib/pgsql/data/".

2-3. Konfigureerimisfaili muutmine

Lubage IP-aadressidele juurdepääs PostgreSQLile. Seadistage süsteem nii, et see on mitte-lokaalse juurdepääsu jaoks parooliga autentitud.

[root@hostname ~]# vi /var/lib/pgsql/data/postgresql.conf

Muutke faili 'postgresql.conf' järgmiselt.

postgresql.conf【Enne muutust】


#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

#listen_addresses = 'localhost'         # what IP address(es) to listen on;

postgresql.conf【pärast muutust】


#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'         # what IP address(es) to listen on;

Et lisada, kuna see on oluline osa turvalisusest, siis kui te panete selle seadistuse sisse, siis on teil võimalik pääseda saidile mis tahes IP-lt. Kui IP, millele soovitakse juurdepääsu, on fikseeritud, märkige fikseeritud IP.

See seadistus on vajalik, kui sisselogimine toimub muust serverist kui see, kuhu on paigaldatud PostgreSQL, nt pgadmin. See seadistus ei ole vajalik, kui logite serverisse sisse ja käivitate käsu psql. (kuna ühendus pärineb temast endast (localhost))

See on oluline turvasäte, seega minimeerige sellele juurdepääsu võimaldavate kasutajate arvu nii palju kui võimalik.

Seejärel muutke faili 'pg_hba.conf'.

[root@hostname ~]# vi /var/lib/pgsql/data/pg_hba.conf

Lisage dokumendi lõppu järgmine teave.

pg_hba.conf


#Salasõna autentimine väljastpoolt.
host    all             all             0.0.0.0/0            md5

Selle seadistuse lisamisel on väljastpoolt ühendamisel nõutav salasõna. Need alad võivad olla tõsised turvaaugud, kui neid ei ole seadistatud või on seadistatud valesti, seega palun seadistage need kõige hoolikamalt.

2-4. bootstrap check

Nüüd, kui eelkonfigureerimine on lõpetatud, kontrollige, et PostgreSQL käivitub. Kuna andmebaas loodi postgres'i kasutajana, siis lülituge enne käivitamist postgres'i kasutajaks.

[root@hostname ~]# su - postgres
-bash-4.2$ pg_ctl start

Pärast PostgreSQLi edukat käivitamist kontrollige, et käsk psql töötaks probleemideta. Käivitage käsk psql postgres'i kasutajana.

-bash-4.2$ psql -l
                                         Database List
   Name    |  Owner   | Encoding         |  Collation Order   | Ctype(conversion operator) |      Access rights
-----------+----------+------------------+--------------------+----------------------------+-----------------------
 postgres  | postgres | UTF8             | ja_JP.UTF-8        | ja_JP.UTF-8                |
 template0 | postgres | UTF8             | ja_JP.UTF-8        | ja_JP.UTF-8                | =c/postgres          +
           |          |                  |                    |                            | postgres=CTc/postgres
 template1 | postgres | UTF8             | ja_JP.UTF-8        | ja_JP.UTF-8                | =c/postgres          +
           |          |                  |                    |                            | postgres=CTc/postgres
(3 lines)

See on OK, kui tagastatakse ülaltoodud tulemused.

2-5. Automaatne käivitusseadistus

Kuigi see ei ole kohustuslik, on raske käivitada PostgreSQL-i iga kord, kui server taaskäivitatakse, seega on see konfigureeritud nii, et PostgreSQL käivitub automaatselt, kui server käivitatakse. See registreerib ka käsu systemctl. Pange tähele, et see protseduur on CentOS7 jaoks, nii et kui te kasutate midagi muud kui CentOS7, peate kasutama selleks käsku Service.

Kontrollida, kas '/usr/lib/systemd/system/postgresql.service' on olemas. Kui ei ole, looge 'postgresql.service' järgmise protseduuri abil. Käivita root-kasutajana.

[root@hostname ~]# touch /etc/systemd/system/postgresql.service
[root@hostname ~]# vi /etc/systemd/system/postgresql.service

Esitatakse järgmine teave.

postgresql.service


[Unit]
#Kirjeldus.
Description=PostgreSQL
#Täitmiseelne ja -järgne kontroll.
#Before=xxx.service
After=network.target

[Service]
#Kasutaja ja grupi määramine
User=postgres
Group=postgres
#Kui see on aktiveeritud, määrake olekuks "Aktiveeritud".
Type=oneshot
RemainAfterExit=yes
#Käivitage, peatage ja laadige uuesti.
Environment=PGDATA=/var/lib/pgsql/data
ExecStart=/usr/bin/pg_ctl start -D /var/lib/pgsql/data
ExecStop=/usr/bin/pg_ctl stop
ExecReload=/usr/bin/pg_ctl reload

[Install]
#Runlevel 3 samaväärsed seaded.
WantedBy=multi-user.target

Seejärel registreerige end käsuga systemctl.

[root@hostname ~]# systemctl enable postgresql
[root@hostname ~]# systemctl is-enabled postgresql
enabled
[root@hostname ~]# systemctl list-unit-files --type=service | grep postgresql
postgresql.service                                enabled
[root@hostname ~]# systemctl daemon-reload

2-6. Administratiivse kasutaja lisamine PostgreSQL-ile

Looge kasutaja, mida kasutatakse PostgreSQLi rakenduses, eraldi kasutajast, kes kasutab PostgreSQLi Linuxist. See on kasutaja, kes töötab pgadminiga jne. Tahaksin muuta vaikimisi olemasoleva postgres'i kasutaja parooli ja kasutada seda.

Käivita järgmine käsk postgres'i kasutajana.

-bash-4.2$ psql
postgres=# alter role postgres with password '(arvuti) parool';
postgres=# \q

※Sisestage soovitud parool väljale "Parool".

2-7. Tulemüüride puurimine

Lubage juurdepääs PostgreSQL-i pordile, sest tulemüür (iptables CentOS6 ja varasemate versioonide puhul) lubab CentOS7 puhul vaikimisi ainult ssh-juurdepääsu. Lisage ka valik "püsiv", et muuta konfiguratsioon püsivaks.

[root@hostname ~]# firewall-cmd --permanent --zone=public --add-port=5432/tcp
[root@hostname ~]# firewall-cmd --reload
[root@hostname ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: dhcpv6-client http https ssh
  ports: 8080/tcp 5432/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Kui seal on kirjas "ports: 5432/tcp", siis on kõik korras.

Juurdepääs pgadmini kaudu. Te peaksite saama sisse logida postgres'i kasutajana äsja määratud parooliga.

3. kokkuvõte

Oleme kirjeldanud PostgreSQLi paigaldamisel vajalikku algkonfiguratsiooni. PostgreSQLi esmane ülesehitamine võib olla keeruline, seega vaadake seda jaotist.

Aitäh, et vaatasite kuni lõpuni.