Pradinė konfigūracija, kurios reikia įdiegus "PostgreSQL" į "CentOS" ir prieš paleidžiant.
Paskelbimo data:2020 m. gruodžio 17 d.
INFOMARTION > Pradinė konfigūracija, kurios reikia įdiegus "PostgreSQL" į "CentOS" ir prieš paleidžiant.
Apžvalga.
Tai pradinė konfigūravimo procedūra, kurios reikia norint įdiegti ir paleisti "PostgreSQL" "CentOS" sistemoje. Informacija pagrįsta prielaida, kad naudojama "CentOS7". Taip pat įtrauktas skyrius apie saugumą.
Rekomenduojama naudoti "PostgreSQL", nes ji yra nemokama ir labai funkcionali. Girdėjau, kad anksčiau "PostgreSQL" funkcijos buvo lėtos, tačiau naujausios patobulėjo ir yra greitesnės.
Versijos yra šios.
CentOS versija | 7.6 (1810) |
---|---|
"PostgreSQL" versija | 9.2.24 |
Turinys
1. įdiegti
Šiame skyriuje aprašoma "PostgreSQL" diegimo procedūra.
1-1. "PostgreSQL" diegimas
Atlikite "PostgreSQL" diegimą naudodami komandą yum. Darbą atlikite kaip root naudotojas.
[username@hostname ~]$ su -
[root@hostname ~]# yum -y install postgresql-server
2. Sąrankos informacija
Šiame skyriuje aprašoma konfigūracija iki "PostgreSQL" paleidimo.
2-1. Sukurkite specialų "PostgreSQL" naudotoją.
Norėjau sukurti specialų vartotoją, kuris dirbtų su "PostgreSQL" (naudotų psql komandas), tačiau vartotojas jau buvo sukurtas. Prisimenu, kaip anksčiau kūriau naudotojus, todėl galbūt specifikacija pasikeitė.
Pabandykite pereiti prie naudotojo naudodami šią komandą.
[root@hostname ~]# su - postgres
Kadangi kai kurie žmonės galbūt naudoja senesnę "PostgreSQL" versiją, reikėtų paminėti, kad aplinkos kintamųjų nustatymo procedūra keičiant ".bashrc" nebereikalinga.
export PGHOME=/var/lib/pgsql
export PGDATA=/var/lib/pgsql/data
export PGHOST=localhost
Numatytoji PGDATA "Postgres" naudotojams dabar yra "/var/lib/pgsql/data". Ji aprašyta kaip nuoroda į "/usr/lib/systemd/system/postgresql.service".
2-2. "PostgreSQL" duomenų rengimas
Sukurkite "PostgreSQL" duomenis. Kodavimas yra UNICODE. Katalogas "/var/lib/pgsql/data" buvo sukurtas pagal numatytuosius nustatymus, tačiau tų, kurie to nepadarė, taip pat prašoma sukurti katalogą.
-bash-4.2$ initdb --encoding=UNICODE
Kadangi "PGDATA=/var/lib/pgsql/data" yra nustatyta "/usr/lib/systemd/system/postgresql.service", "initdb --encoding=UNICODE" sukurs DB adresu "/var/lib/pgsql/". data/", DB yra sukurta "/var/lib/pgsql/data/".
2-3. Konfigūracijos failo keitimas
Leisti IP adresams pasiekti "PostgreSQL". Nustatykite sistemą taip, kad jos autentiškumas būtų patvirtintas slaptažodžiu ne vietinei prieigai.
[root@hostname ~]# vi /var/lib/pgsql/data/postgresql.conf
Pakeiskite 'postgresql.conf' taip.
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
#listen_addresses = 'localhost' # what IP address(es) to listen on;
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
Jei įjungsite šį nustatymą, galėsite pasiekti svetainę iš bet kurio IP adreso, nes tai yra svarbi saugumo dalis. Jei IP, prie kurio bus jungiamasi, yra fiksuotas, nurodykite fiksuotąjį IP.
Šis nustatymas reikalingas prisijungiant iš kito serverio nei tas, kuriame įdiegta "PostgreSQL", pvz., pgadmin. Šis nustatymas nereikalingas, jei prisijungiate prie serverio ir paleidžiate komandą psql. (nes ryšys užmezgamas iš jo paties (localhost))
Tai svarbus saugumo nustatymas, todėl kiek įmanoma sumažinkite naudotojų, galinčių jį pasiekti, skaičių.
Tada pakeiskite "pg_hba.conf".
[root@hostname ~]# vi /var/lib/pgsql/data/pg_hba.conf
Dokumento pabaigoje pridėkite šią informaciją.
#Slaptažodžio autentiškumo patvirtinimas iš išorės.
host all all 0.0.0.0/0 md5
Įtraukus šį nustatymą, prisijungiant iš išorės reikalaujama slaptažodžio. Šios sritys gali tapti rimtomis saugumo spragomis, jei jos nenustatytos arba nustatytos neteisingai, todėl prašome jas nustatyti kuo kruopščiau.
2-4. įkrovos juostos patikrinimas
Atlikę išankstinę konfigūraciją, patikrinkite, ar paleidžiama "PostgreSQL". Kadangi DB buvo sukurta kaip postgres naudotojas, prieš pradėdami darbą persijunkite į postgres naudotoją.
[root@hostname ~]# su - postgres
-bash-4.2$ pg_ctl start
Sėkmingai paleidę "PostgreSQL", patikrinkite, ar komanda psql veikia be problemų. Paleiskite komandą psql kaip postgres naudotojas.
-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)
Jei grąžinami pirmiau nurodyti rezultatai, viskas gerai.
2-5. Automatinio paleidimo nustatymas
Nors tai nėra privaloma, sunku paleisti "PostgreSQL" kiekvieną kartą iš naujo paleidžiant serverį, todėl jis konfigūruojamas taip, kad "PostgreSQL" būtų paleidžiamas automatiškai, kai paleidžiamas serveris. Ji taip pat registruojama į komandą systemctl. Atkreipkite dėmesį, kad ši procedūra skirta "CentOS7", todėl jei naudojate kitą nei "CentOS7" operacinę sistemą, turėsite naudoti komandą "Service".
Patikrinkite, ar egzistuoja '/usr/lib/systemd/system/postgresql.service'. Jei ne, sukurkite "postgresql.service" naudodami šią procedūrą. Paleiskite kaip root naudotojas.
[root@hostname ~]# touch /etc/systemd/system/postgresql.service
[root@hostname ~]# vi /etc/systemd/system/postgresql.service
Pateikiama ši informacija.
[Unit]
#Aprašymas.
Description=PostgreSQL
#kontrolė prieš vykdymą ir po jo.
#Before=xxx.service
After=network.target
[Service]
#Vartotojo ir grupės paskyrimas
User=postgres
Group=postgres
#Suaktyvinus būseną, nustatykite būseną Aktyvuota.
Type=oneshot
RemainAfterExit=yes
#Paleiskite, sustabdykite ir perkraukite.
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]
#3 lygmens lygiaverčiai nustatymai.
WantedBy=multi-user.target
Tada užsiregistruokite naudodami komandą 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. Administracinio naudotojo įtraukimas į "PostgreSQL
Sukurkite vartotoją, kuris bus naudojamas "PostgreSQL" programoje, atskirai nuo vartotojo, kuris naudoja "PostgreSQL" iš "Linux". Tai naudotojas, kai dirbama su pgadmin ir t. t. Norėčiau pakeisti pagal nutylėjimą egzistuojančio "postgres" naudotojo slaptažodį ir jį naudoti.
Vykdykite šią komandą kaip postgres naudotojas.
-bash-4.2$ psql
postgres=# alter role postgres with password '(kompiuterio) slaptažodis';
postgres=# \q
※Laukelyje "Slaptažodis" įveskite norimą nustatyti slaptažodį.
2-7. Ugniasienių gręžimas
Leiskite prieigą prie "PostgreSQL" prievado, nes CentOS6 ir ankstesnėse versijose ugniasienė (iptables) pagal numatytuosius nustatymus leidžia tik ssh prieigą CentOS7 versijoje. Taip pat pridėkite parinktį "nuolatinis", kad konfigūracija būtų nuolatinė.
[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:
Jei rašoma "prievadai: 5432/tcp", vadinasi, viskas gerai.
Prieiga per pgadmin. Turėtumėte galėti prisijungti kaip postgres naudotojas su ką tik nustatytu slaptažodžiu.
3. santrauka
Aprašėme pradinę konfigūraciją, kurios reikia įdiegus "PostgreSQL". Pradinis "PostgreSQL" kūrimas gali būti sudėtingas, todėl žr. šį skyrių.
Dėkojame, kad žiūrėjote iki pabaigos.
■INFORMATION
Spustelėkite čia, kad pereitumėte į viršutinį puslapį su informacija.
■PROFILE
Spustelėkite čia, kad pamatytumėte profilį.
■Kontaktinė informacija.
Jei turite klausimų apie straipsnį, susisiekite su mumis čia.