Configurazione iniziale necessaria dopo l'installazione di PostgreSQL su CentOS e prima dell'avvio.


Data di pubblicazione:17 dicembre 2020.



INFOMARTION > Configurazione iniziale necessaria dopo l'installazione di PostgreSQL su CentOS e prima dell'avvio.

Panoramica.

Questa è la procedura di configurazione iniziale necessaria per installare e avviare PostgreSQL su CentOS. Le informazioni si basano sull'ipotesi di utilizzo di CentOS7. È inclusa anche la sezione sulla sicurezza.

PostgreSQL è consigliato in quanto gratuito e altamente funzionale. Ho sentito dire che le funzioni di PostgreSQL erano lente, ma quelle recenti sono migliorate e sono più veloci.

Le versioni sono le seguenti.

Versione CentOS7.6 (1810)
Versione di PostgreSQL9.2.24

Indice dei contenuti

  1. installare
  2. Dettagli di configurazione
  3. sintesi

1. installare

Questa sezione descrive la procedura di installazione di PostgreSQL.

1-1. Installazione di PostgreSQL

Eseguire l'installazione di PostgreSQL con il comando yum. Eseguire il lavoro come utente root.

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

2. Dettagli di configurazione

Questa sezione descrive la configurazione fino all'avvio di PostgreSQL.

2-1. Creare un utente PostgreSQL dedicato.

Volevo creare un utente dedicato per manipolare PostgreSQL (usare i comandi psql), ma l'utente era già stato creato. Ricordo di aver creato gli utenti quando li ho creati in passato, quindi forse le specifiche sono cambiate.

Provate a passare a un utente con il seguente comando.

[root@hostname ~]# su - postgres

Poiché alcuni potrebbero utilizzare una versione precedente di PostgreSQL, va detto che la procedura per impostare le variabili d'ambiente modificando il seguente ".bashrc" non è più necessaria.

.bashrc


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

Il PGDATA predefinito per gli utenti postgres sembra ora essere '/var/lib/pgsql/data'. Viene descritto come un riferimento a "/usr/lib/systemd/system/postgresql.service".

2-2. Preparazione dei dati PostgreSQL

Creare dati PostgreSQL. La codifica è UNICODE. La cartella "/var/lib/pgsql/data" è stata creata per impostazione predefinita, ma a chi non l'ha fatto viene richiesto di creare una cartella.

-bash-4.2$ initdb --encoding=UNICODE

Poiché "PGDATA=/var/lib/pgsql/data" è impostato in "/usr/lib/systemd/system/postgresql.service", "initdb --encoding=UNICODE" costruirà un DB sotto "/var/lib/pgsql/ data/", il DB è costruito sotto "/var/lib/pgsql/data/".

2-3. Modifica del file di configurazione

Consentire agli indirizzi IP di accedere a PostgreSQL. Impostare il sistema in modo che sia autenticato con password per l'accesso non locale.

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

Modificare 'postgresql.conf' come segue.

postgresql.conf【Prima del cambiamento】


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

# - Connection Settings -

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

postgresql.conf【dopo la modifica】


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

# - Connection Settings -

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

Inoltre, poiché si tratta di una parte importante della sicurezza, se si inserisce questa impostazione, si potrà accedere al sito da qualsiasi IP. Se l'IP a cui accedere è fisso, indicare l'IP fisso.

Questa impostazione è necessaria quando si accede da un server diverso da quello in cui è installato PostgreSQL, ad esempio pgadmin. Questa impostazione non è necessaria se si accede al server e si esegue il comando psql. (poiché la connessione proviene da lui stesso (localhost))

Si tratta di un'importante impostazione di sicurezza, quindi riducete il più possibile il numero di utenti che possono accedervi.

Quindi modificare 'pg_hba.conf'.

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

Aggiungete le seguenti informazioni alla fine del documento.

pg_hba.conf


#Autenticazione della password dall'esterno.
host    all             all             0.0.0.0/0            md5

Includendo questa impostazione, viene richiesta una password quando ci si connette dall'esterno. Queste aree possono rappresentare una grave falla nella sicurezza se non vengono configurate o se vengono configurate in modo errato, pertanto vi invitiamo a configurarle con la massima cura.

2-4. controllo bootstrap

Una volta completata la preconfigurazione, verificare che PostgreSQL si avvii. Poiché il DB è stato creato come utente postgres, passare all'utente postgres prima di iniziare.

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

Dopo che PostgreSQL è stato avviato con successo, verificate che il comando psql funzioni senza problemi. Eseguire il comando psql come utente 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)

Se vengono restituiti i risultati di cui sopra, non c'è problema.

2-5. Impostazione dell'avvio automatico

Anche se non è obbligatorio, è difficile avviare PostgreSQL a ogni riavvio del server, quindi è configurato in modo che PostgreSQL si avvii automaticamente all'avvio del server. Si registra anche al comando systemctl. Si noti che questa procedura si riferisce a CentOS7, quindi se si utilizza qualcosa di diverso da CentOS7, è necessario utilizzare il comando Service.

Controllare se '/usr/lib/systemd/system/postgresql.service' esiste. In caso contrario, creare 'postgresql.service' utilizzando la seguente procedura. Eseguire come utente root.

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

Vengono fornite le seguenti informazioni.

postgresql.service


[Unit]
#Descrizione.
Description=PostgreSQL
#Controllo pre e post esecuzione.
#Before=xxx.service
After=network.target

[Service]
#Designazione di utenti e gruppi
User=postgres
Group=postgres
#Una volta attivato, impostare lo stato su Attivato.
Type=oneshot
RemainAfterExit=yes
#Avvio, arresto e ricarica.
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]
#Impostazioni equivalenti al Runlevel 3.
WantedBy=multi-user.target

Quindi, registrarsi con il comando 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. Aggiunta di un utente amministrativo a PostgreSQL

Creare un utente da utilizzare all'interno dell'applicazione PostgreSQL, separato dall'utente che gestisce PostgreSQL da Linux. Questo è l'utente quando si opera con pgadmin, ecc. Vorrei cambiare la password dell'utente postgres che esiste di default e utilizzarla.

Eseguire il seguente comando come utente postgres.

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

※Inserire la password che si desidera impostare nel campo "Password".

2-7. Foratura dei firewall

Consentire l'accesso alla porta PostgreSQL perché il firewall (iptables per CentOS6 e precedenti) consente solo l'accesso ssh per impostazione predefinita su CentOS7. Aggiungere anche l'opzione "permanente" per rendere la configurazione permanente.

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

Se è scritto "porte: 5432/tcp", è tutto a posto.

Accesso tramite pgadmin. Dovreste essere in grado di accedere come utente postgres con la password appena impostata.

3. sintesi

Abbiamo descritto la configurazione iniziale richiesta al momento dell'installazione di PostgreSQL. La creazione iniziale di PostgreSQL può essere difficile, quindi fate riferimento a questa sezione.

Grazie per aver guardato fino alla fine.




■INFORMATION

Fare clic qui per accedere alla pagina superiore di INFORMAZIONI.


■PROFILE

Cliccare qui per un profilo.


■Dettagli di contatto.

Per richieste di informazioni sull'articolo, contattateci qui.