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 versija | 7.6 (1810) |
---|---|
PostgreSQL versija | 9.2.24 |
Satura rādītājs
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".
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.
#------------------------------------------------------------------------------
# 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;
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.
#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.
[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.