Začetna konfiguracija je potrebna po namestitvi PostgreSQL na CentOS in pred zagonom.


Datum objave:17. december 2020.



INFOMARTION > Začetna konfiguracija je potrebna po namestitvi PostgreSQL na CentOS in pred zagonom.

Pregled.

To je postopek začetne konfiguracije, ki je potreben za namestitev in zagon PostgreSQLa v sistemu CentOS. Informacije temeljijo na predpostavki, da se uporablja sistem CentOS7. Vključen je tudi razdelek o varnosti.

PostgreSQL je priporočljiv, saj je brezplačen in zelo funkcionalen. Slišal sem, da so bile funkcije PostgreSQLa včasih počasne, vendar so se novejše izboljšale in so hitrejše.

Različice so naslednje.

Različica sistema CentOS7.6 (1810)
Različica strežnika PostgreSQL9.2.24

Kazalo vsebine

  1. namestitev
  2. Podrobnosti o nastavitvi
  3. povzetek

1. namestitev

V tem razdelku je opisan postopek namestitve PostgreSQL.

1-1. Namestitev strežnika PostgreSQL

PostgreSQL namestite z ukazom yum. Delo opravite kot uporabnik root.

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

2. Podrobnosti o nastavitvi

V tem razdelku je opisana konfiguracija do zagona PostgreSQLa.

2-1. Ustvarite posebnega uporabnika PostgreSQL.

Želel sem ustvariti posebnega uporabnika za delo s PostgreSQL (uporaba ukazov psql), vendar je bil uporabnik že ustvarjen. Spomnim se, da sem uporabnike ustvaril v preteklosti, zato se je specifikacija morda spremenila.

Poskusite preklopiti na uporabnika z naslednjim ukazom.

[root@hostname ~]# su - postgres

Ker nekateri morda uporabljajo starejšo različico PostgreSQLa, je treba omeniti, da postopek nastavljanja okoljskih spremenljivk s spreminjanjem naslednjega ".bashrc" ni več potreben.

.bashrc


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

Privzeta PGDATA za uporabnike postgresa je zdaj '/var/lib/pgsql/data'. Opisano je, da se nanaša na "/usr/lib/systemd/system/postgresql.service".

2-2. Priprava podatkov PostgreSQL

Ustvarite podatke PostgreSQL. Kodiranje je UNICODE. Privzeto je bil ustvarjen imenik "/var/lib/pgsql/data", vendar se od tistih, ki ga niso ustvarili, tudi zahteva, da ustvarijo mapo.

-bash-4.2$ initdb --encoding=UNICODE

Ker je "PGDATA=/var/lib/pgsql/data" nastavljeno v "/usr/lib/systemd/system/postgresql.service", bo "initdb --encoding=UNICODE" zgradil DB pod "/var/lib/pgsql/ data/", DB je zgrajena pod "/var/lib/pgsql/data/".

2-3. Spreminjanje konfiguracijske datoteke

Dovoli naslovom IP dostop do PostgreSQL. Sistem nastavite tako, da je za nelokalni dostop overjen z geslom.

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

Spremenite 'postgresql.conf', kot sledi.

postgresql.conf【Pred spremembo】


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

# - Connection Settings -

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

postgresql.conf【po spremembi】


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

# - Connection Settings -

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

Če vnesete to nastavitev, boste lahko do spletnega mesta dostopali s katerega koli IP-ja, saj je to pomemben del varnosti. Če je IP, do katerega je treba dostopati, fiksni, navedite fiksni IP.

Ta nastavitev je potrebna, če se prijavite iz strežnika, ki ni strežnik, v katerem je nameščen PostgreSQL, npr. pgadmin. Ta nastavitev ni potrebna, če se prijavite v strežnik in zaženete ukaz psql. (ker povezava izvira iz njega samega (localhost))

To je pomembna varnostna nastavitev, zato čim bolj zmanjšajte število uporabnikov, ki lahko do nje dostopajo.

Nato spremenite 'pg_hba.conf'.

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

Na konec dokumenta dodajte naslednje informacije.

pg_hba.conf


#Preverjanje pristnosti gesla od zunaj.
host    all             all             0.0.0.0/0            md5

Če vključite to nastavitev, je pri povezovanju od zunaj potrebno geslo. Ta območja so lahko resna varnostna luknja, če niso nastavljena ali so nastavljena nepravilno, zato jih nastavite z največjo skrbnostjo.

2-4. preverjanje zagonskega pasu

Po končani predkonfiguraciji preverite, ali se PostgreSQL zažene. Ker je bila DB zgrajena kot uporabnik postgres, pred začetkom preklopite na uporabnika postgres.

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

Po uspešnem zagonu PostgreSQLa preverite, ali ukaz psql deluje brez težav. Zaženite ukaz psql kot uporabnik postgres.

-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)

V redu je, če se vrnejo zgoraj navedeni rezultati.

2-5. Nastavitev samodejnega zagona

Čeprav to ni obvezno, je PostgreSQL težko zagnati ob vsakem ponovnem zagonu strežnika, zato je konfiguriran tako, da se PostgreSQL samodejno zažene ob zagonu strežnika. Registrira se tudi z ukazom systemctl. Upoštevajte, da ta postopek velja za sistem CentOS7, če uporabljate kaj drugega kot sistem CentOS7, boste morali za to uporabiti ukaz Service.

Preverite, ali obstaja '/usr/lib/systemd/system/postgresql.service'. Če ne, ustvarite 'postgresql.service' z naslednjim postopkom. Zaženite kot uporabnik root.

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

Na voljo so naslednje informacije.

postgresql.service


[Unit]
#Opis.
Description=PostgreSQL
#Nadzor pred in po izvedbi.
#Before=xxx.service
After=network.target

[Service]
#Imenovanje uporabnikov in skupin
User=postgres
Group=postgres
#Ko je aktivirano, nastavite stanje na Aktivirano.
Type=oneshot
RemainAfterExit=yes
#Zagon, zaustavitev in ponovno polnjenje.
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]
#Enakovredne nastavitve na ravni Runlevel 3.
WantedBy=multi-user.target

Nato se registrirajte z ukazom 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. Dodajanje administratorskega uporabnika v PostgreSQL

Ustvarite uporabnika, ki se bo uporabljal v aplikaciji PostgreSQL in bo ločen od uporabnika, ki upravlja PostgreSQL iz Linuxa. To je uporabnik pri uporabi programa pgadmin itd. Rad bi spremenil geslo uporabnika postgres, ki obstaja privzeto, in ga uporabil.

Naslednji ukaz zaženite kot uporabnik postgres.

-bash-4.2$ psql
postgres=# alter role postgres with password '(računalniško) geslo';
postgres=# \q

※V polje "Geslo" vnesite geslo, ki ga želite nastaviti.

2-7. Vrtanje požarnih zidov

Dovolite dostop do vrat PostgreSQL, saj požarni zid (iptables za CentOS6 in starejše) v sistemu CentOS7 privzeto dovoljuje le dostop ssh. Dodajte tudi možnost "trajno", da bo konfiguracija trajna.

[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:

Če piše 'vrata: 5432/tcp', je vse v redu.

Dostop prek programa pgadmin. Z geslom, ki ste ga pravkar nastavili, se boste lahko prijavili kot uporabnik postgresa.

3. povzetek

Opisali smo začetno konfiguracijo, ki je potrebna ob namestitvi PostgreSQLa. Začetna vzpostavitev PostgreSQLa je lahko težavna, zato si oglejte to poglavje.

Hvala, ker ste gledali do konca.




■INFORMATION

Kliknite tukaj za prehod na zgornjo stran INFORMACIJE.


■PROFILE

Kliknite tukaj za profil.


■Kontaktni podatki.

Za poizvedbe o članku nam pišite tukaj.