Alustava konfigurointi vaaditaan PostgreSQL:n asennuksen jälkeen CentOS-käyttöjärjestelmässä ja ennen käyttöönottoa.


Julkaisupäivä:17. joulukuuta 2020.



INFOMARTION > Alustava konfigurointi vaaditaan PostgreSQL:n asennuksen jälkeen CentOS-käyttöjärjestelmässä ja ennen käyttöönottoa.

Yleiskatsaus.

Tämä on alustava konfigurointimenettely, jota tarvitaan PostgreSQL:n asentamiseen ja käynnistämiseen CentOS-käyttöjärjestelmässä. Tiedot perustuvat oletukseen, että käytössä on CentOS7. Mukana on myös turvallisuutta koskeva osa.

PostgreSQL:ää suositellaan, koska se on ilmainen ja erittäin toimiva. Olen kuullut, että PostgreSQL:n funktiot olivat ennen hitaita, mutta viimeaikaiset funktiot ovat parantuneet ja nopeutuneet.

Versiot ovat seuraavat.

CentOS-versio7.6 (1810)
PostgreSQL:n versio9.2.24

Sisällysluettelo

  1. asenna
  2. Asetusten yksityiskohdat
  3. yhteenveto

1. asenna

Tässä osassa kuvataan PostgreSQL:n asentaminen.

1-1. PostgreSQL:n asentaminen

Suorita PostgreSQL-asennus yum-komennolla. Suorita työ pääkäyttäjänä.

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

2. Asetusten yksityiskohdat

Tässä osassa kuvataan kokoonpano PostgreSQL:n käynnistämiseen asti.

2-1. Luo oma PostgreSQL-käyttäjä.

Halusin luoda oman käyttäjän PostgreSQL:n käsittelyä varten (psql-komentojen käyttö), mutta käyttäjä oli jo luotu. Muistan luoneeni käyttäjiä aiemmin, joten ehkä määrittely on muuttunut.

Kokeile siirtyä käyttäjäksi seuraavalla komennolla.

[root@hostname ~]# su - postgres

Koska jotkut saattavat mahdollisesti käyttää vanhempaa PostgreSQL-versiota, on syytä mainita, että menettely ympäristömuuttujien asettamiseksi muuttamalla seuraavaa ".bashrc" ei myöskään ole enää tarpeen.

.bashrc


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

Postgres-käyttäjien oletusarvoinen PGDATA näyttää nyt olevan '/var/lib/pgsql/data'. Sen kuvataan viittaavan tiedostoon "/usr/lib/systemd/system/postgresql.service".

2-2. PostgreSQL-tietojen valmistelu

Luo PostgreSQL-tiedot. Koodaus on UNICODE. Hakemisto "/var/lib/pgsql/data" luotiin oletusarvoisesti, mutta niitä, jotka eivät ole luoneet, pyydetään myös luomaan kansio.

-bash-4.2$ initdb --encoding=UNICODE

Koska "PGDATA=/var/lib/pgsql/data" on asetettu "/usr/lib/systemd/system/postgresql.service"-kenttään, "initdb --encoding=UNICODE" luo tietokannan osoitteeseen "/var/lib/pgsql/". data/", tietokanta rakennetaan osoitteeseen "/var/lib/pgsql/data/".

2-3. Määritystiedoston muuttaminen

Salli IP-osoitteiden pääsy PostgreSQL:ään. Määritä järjestelmä niin, että se on salasanalla todennettu muita kuin paikallisia käyttäjiä varten.

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

Muokkaa 'postgresql.conf' seuraavasti.

postgresql.conf【Ennen muutosta】


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

# - Connection Settings -

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

postgresql.conf【muutoksen jälkeen】


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

# - Connection Settings -

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

Koska tämä on tärkeä osa tietoturvaa, jos otat tämän asetuksen käyttöön, voit käyttää sivustoa miltä tahansa IP-osoitteelta. Jos käytettävä IP-osoite on kiinteä, ilmoita kiinteä IP-osoite.

Tämä asetus on tarpeen, kun kirjaudutaan sisään muulta palvelimelta kuin siltä, jolle PostgreSQL on asennettu, esim. pgadmin. Tämä asetus ei ole tarpeen, jos kirjaudut palvelimeen ja suoritat psql-komennon. (koska yhteys on peräisin häneltä itseltään (localhost))

Tämä on tärkeä tietoturva-asetus, joten minimoi mahdollisimman paljon käyttäjiä, jotka voivat käyttää sitä.

Muokkaa sitten 'pg_hba.conf'.

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

Lisää seuraavat tiedot asiakirjan loppuun.

pg_hba.conf


#Salasanan todennus ulkopuolelta.
host    all             all             0.0.0.0/0            md5

Jos tämä asetus on käytössä, salasana vaaditaan, kun yhteys muodostetaan ulkopuolelta. Nämä alueet voivat olla vakavia tietoturva-aukkoja, jos niitä ei ole määritetty tai ne on määritetty väärin, joten määritä ne mahdollisimman huolellisesti.

2-4. bootstrap-tarkistus

Nyt kun esiasetukset on tehty, tarkista, että PostgreSQL käynnistyy. Koska tietokanta rakennettiin postgres-käyttäjänä, vaihda postgres-käyttäjäksi ennen käynnistämistä.

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

Kun PostgreSQL on käynnistetty onnistuneesti, tarkista, että psql-komento toimii ongelmitta. Suorita psql-komento postgres-käyttäjänä.

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

On OK, jos edellä mainitut tulokset palautetaan.

2-5. Automaattinen käynnistysasetus

Vaikka se ei ole pakollista, PostgreSQL:ää on vaikea käynnistää joka kerta, kun palvelin käynnistetään uudelleen, joten se on määritetty siten, että PostgreSQL käynnistyy automaattisesti, kun palvelin käynnistetään. Se rekisteröityy myös systemctl-komentoon. Huomaa, että tämä menettely koskee CentOS7:ää, joten jos käytät jotain muuta kuin CentOS7:ää, sinun on käytettävä Service-komentoa.

Tarkista, onko tiedosto '/usr/lib/systemd/system/postgresql.service' olemassa. Jos näin ei ole, luo tiedosto 'postgresql.service' seuraavalla tavalla. Suorita pääkäyttäjänä.

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

Toimitetaan seuraavat tiedot.

postgresql.service


[Unit]
#Kuvaus.
Description=PostgreSQL
#Toteutusta edeltävä ja sen jälkeinen valvonta.
#Before=xxx.service
After=network.target

[Service]
#Käyttäjän ja ryhmän nimeäminen
User=postgres
Group=postgres
#Kun se on aktivoitu, aseta tilaksi Aktivoitu.
Type=oneshot
RemainAfterExit=yes
#Käynnistä, pysäytä ja lataa uudelleen.
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:n vastaavat asetukset.
WantedBy=multi-user.target

Rekisteröidy seuraavaksi systemctl-komennolla.

[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. Hallinnollisen käyttäjän lisääminen PostgreSQL:ään

Luo PostgreSQL-sovelluksessa käytettävä käyttäjä, joka on erillinen siitä käyttäjästä, joka käyttää PostgreSQL:ää Linuxissa. Tämä on käyttäjä, kun käytät pgadminia, jne. Haluaisin muuttaa oletusarvoisesti olemassa olevan postgres-käyttäjän salasanan ja käyttää sitä.

Suorita seuraava komento postgres-käyttäjänä.

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

※Kirjoita haluamasi salasana kenttään 'Password'.

2-7. Palomuurien poraaminen

Salli pääsy PostgreSQL-porttiin, koska palomuuri (iptables CentOS6:ssa ja sitä vanhemmissa versioissa) sallii oletusarvoisesti vain ssh-yhteyden CentOS7:ssä. Lisää myös "permanent"-vaihtoehto, jotta asetuksista tulee pysyviä.

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

Jos siinä lukee "portit: 5432/tcp", se on OK.

Pääsy pgadminin kautta. Sinun pitäisi pystyä kirjautumaan sisään postgres-käyttäjänä juuri asettamallasi salasanalla.

3. yhteenveto

Olemme kuvailleet PostgreSQL:n asennuksen yhteydessä tarvittavia alkukokoonpanoja. PostgreSQL:n alkuasennus voi olla hankalaa, joten tutustu tähän osioon.

Kiitos, että katsoitte loppuun asti.