Sākotnējā konfigurācija nepieciešama pēc PostgreSQL instalēšanas CentOS un pirms palaišanas.


Publikācijas datums:2020. gada 17. decembris.



INFOMARTION > Sākotnējā konfigurācija nepieciešama pēc PostgreSQL instalēšanas CentOS un pirms palaišanas.

Pārskats.

Šī ir sākotnējā konfigurācijas procedūra, kas nepieciešama, lai uzstādītu un palaistu PostgreSQL CentOS sistēmā. Informācija ir balstīta uz pieņēmumu, ka tiek izmantots CentOS7. Ir iekļauta arī sadaļa par drošību.

Ieteicams izmantot PostgreSQL, jo tā ir bezmaksas un ļoti funkcionāla. Esmu dzirdējis, ka PostgreSQL funkcijas agrāk bija lēnas, bet jaunākās ir uzlabotas un ir ātrākas.

Versijas ir šādas.

CentOS versija7.6 (1810)
PostgreSQL versija9.2.24

Satura rādītājs

  1. instalēt
  2. Iestatīšanas informācija
  3. kopsavilkums

1. instalēt

Šajā sadaļā aprakstīta PostgreSQL instalēšanas procedūra.

1-1. PostgreSQL instalēšana

Veiciet PostgreSQL instalāciju, izmantojot yum komandu. Veiciet darbu kā root lietotājs.

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

2. Iestatīšanas informācija

Šajā sadaļā ir aprakstīta konfigurācija līdz PostgreSQL palaišanai.

2-1. Izveidojiet īpašu PostgreSQL lietotāju.

Es gribēju izveidot īpašu lietotāju, lai manipulētu ar PostgreSQL (izmantot psql komandas), bet lietotājs jau bija izveidots. Atceros, ka iepriekš, kad veidoju lietotājus, es tos izveidoju, tāpēc, iespējams, specifikācija ir mainījusies.

Mēģiniet pārslēgties uz lietotāju, izmantojot šādu komandu.

[root@hostname ~]# su - postgres

Tā kā daži cilvēki, iespējams, izmanto vecāku PostgreSQL versiju, jānorāda, ka vairs nav nepieciešama arī vides mainīgo iestatīšanas procedūra, mainot šādu ".bashrc".

.bashrc


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

Noklusējuma PGDATA postgres lietotājiem tagad ir '/var/lib/pgsql/data'. Tā ir aprakstīta kā atsauce uz "/usr/lib/systemd/system/postgresql.service".

2-2. PostgreSQL datu sagatavošana

Izveidot PostgreSQL datus. Kodējums ir UNICODE. Katalogs "/var/lib/pgsql/data" tika izveidots pēc noklusējuma, bet tiem, kas to nav izveidojuši, arī tiek lūgts izveidot mapi.

-bash-4.2$ initdb --encoding=UNICODE

Tā kā "PGDATA=/var/lib/pgsql/data" ir iestatīts "/usr/lib/systemd/system/postgresql.service", "initdb --encoding=UNICODE" izveidos DB zem "/var/lib/pgsql/". data/", DB tiek veidota zem "/var/lib/pgsql/data/".

2-3. Konfigurācijas faila modificēšana

Atļaut IP adresēm piekļūt PostgreSQL. Iestatiet sistēmu tā, lai tā būtu ar paroli autentificēta piekļuvei, kas nav lokālā piekļuve.

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

Mainiet 'postgresql.conf' šādi.

postgresql.conf【Pirms pārmaiņām】


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

# - Connection Settings -

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

postgresql.conf【pēc izmaiņām】


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

# - Connection Settings -

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

Ja ieviesīsiet šo iestatījumu, vietnei varēsiet piekļūt no jebkura IP, jo tā ir svarīga drošības daļa. Ja piekļūstamais IP ir fiksēts, lūdzu, norādiet fiksēto IP.

Šis iestatījums ir nepieciešams, ja pierakstāties no servera, kas nav tas, kurā ir instalēta PostgreSQL, piemēram, pgadmin. Šis iestatījums nav nepieciešams, ja pierakstāties serverī un izpildāt komandu psql. (jo savienojums nāk no viņa paša (localhost))

Šis ir svarīgs drošības iestatījums, tāpēc pēc iespējas samaziniet to lietotāju skaitu, kuri tam var piekļūt.

Pēc tam modificējiet 'pg_hba.conf'.

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

Dokumenta beigās pievienojiet šādu informāciju.

pg_hba.conf


#Paroles autentificēšana no ārpuses.
host    all             all             0.0.0.0/0            md5

Iekļaujot šo iestatījumu, ir nepieciešama parole, pieslēdzoties no ārpuses. Ja šīs jomas nav iestatītas vai ir iestatītas nepareizi, tās var radīt nopietnas drošības nepilnības, tāpēc lūdzu, iestatiet tās ar vislielāko rūpību.

2-4. bootstrap pārbaude

Tagad, kad iepriekšēja konfigurēšana ir pabeigta, pārbaudiet, vai PostgreSQL tiek palaists. Tā kā DB tika izveidota kā postgres lietotājs, pirms sākšanas pārslēdzieties uz postgres lietotāju.

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

Pēc tam, kad PostgreSQL ir veiksmīgi palaists, pārbaudiet, vai komanda psql darbojas bez problēmām. Palaidiet psql komandu kā postgres lietotājs.

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

Ja tiek atgriezti iepriekš minētie rezultāti, viss ir kārtībā.

2-5. Automātiskās palaišanas iestatījums

Lai gan tas nav obligāti, ir grūti palaist PostgreSQL katru reizi, kad tiek restartēts serveris, tāpēc tas ir konfigurēts tā, lai PostgreSQL tiktu automātiski palaists, kad tiek palaists serveris. Tā arī reģistrējas komandai systemctl. Lūdzu, ņemiet vērā, ka šī procedūra attiecas uz CentOS7, tāpēc, ja izmantojat kādu citu operētājsistēmu, kas nav CentOS7, jums būs jāizmanto komanda Service, lai to paveiktu.

Pārbaudiet, vai pastāv '/usr/lib/systemd/system/postgresql.service'. Ja tā nav, izveidojiet 'postgresql.service', izmantojot šādu procedūru. Palaist kā root lietotājs.

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

Tiek sniegta šāda informācija.

postgresql.service


[Unit]
#Apraksts.
Description=PostgreSQL
#Kontrole pirms un pēc izpildes.
#Before=xxx.service
After=network.target

[Service]
#Lietotāja un grupas apzīmējums
User=postgres
Group=postgres
#Pēc aktivizēšanas iestatiet statusu Aktivizēts.
Type=oneshot
RemainAfterExit=yes
#Uzsākt, apturēt un atkārtoti ielādēt.
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 līdzvērtīgi iestatījumi.
WantedBy=multi-user.target

Pēc tam reģistrējieties, izmantojot komandu 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. Administratīvā lietotāja pievienošana programmatūrai PostgreSQL

Izveidojiet lietotāju, kas tiks izmantots PostgreSQL lietojumprogrammā, atsevišķi no lietotāja, kurš pārvalda PostgreSQL no Linux. Tas ir lietotājs, strādājot ar pgadmin u.c. Es gribētu mainīt postgres lietotāja paroli, kas pastāv pēc noklusējuma, un izmantot to.

Izpildiet šādu komandu kā postgres lietotājs.

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

※Laukā "Parole" ievadiet paroli, ko vēlaties iestatīt.

2-7. Ugunsmūru urbšana

Atļaujiet piekļuvi PostgreSQL portam, jo CentOS6 un agrākajiem modeļiem ugunsmūris (iptables) pēc noklusējuma atļauj tikai ssh piekļuvi CentOS7. Pievienojiet arī opciju "pastāvīgs", lai konfigurāciju padarītu pastāvīgu.

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

Ja ir rakstīts "porti: 5432/tcp", viss ir kārtībā.

Piekļuve, izmantojot pgadmin. Jums vajadzētu būt iespējai pieteikties kā postgres lietotājam ar tikko iestatīto paroli.

3. kopsavilkums

Mēs esam aprakstījuši sākotnējo konfigurāciju, kas nepieciešama pēc PostgreSQL instalēšanas. PostgreSQL sākotnējā izveide var sagādāt grūtības, tāpēc skatiet šo sadaļu.

Paldies, ka noskatījāties līdz beigām.