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 CentOS | 7.6 (1810) |
---|---|
Versione di PostgreSQL | 9.2.24 |
Indice dei contenuti
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.
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.
#------------------------------------------------------------------------------
# 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;
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.
#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.
[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
■Dettagli di contatto.
Per richieste di informazioni sull'articolo, contattateci qui.