Die Erstkonfiguration ist nach der Installation von PostgreSQL auf CentOS und vor dem Start erforderlich.
Datum der Veröffentlichung:17. Dezember 2020.
INFOMARTION > Die Erstkonfiguration ist nach der Installation von PostgreSQL auf CentOS und vor dem Start erforderlich.
Überblick.
Dies ist die anfängliche Konfigurationsprozedur, die für die Installation und den Start von PostgreSQL unter CentOS erforderlich ist. Die Informationen basieren auf der Annahme, dass CentOS7 verwendet wird. Der Abschnitt über Sicherheit ist ebenfalls enthalten.
PostgreSQL wird empfohlen, da es kostenlos und hochfunktional ist. Ich habe gehört, dass die PostgreSQL-Funktionen früher langsam waren, aber in letzter Zeit wurden sie verbessert und sind nun schneller.
Die Versionen sind wie folgt.
CentOS-Version | 7.6 (1810) |
---|---|
Version von PostgreSQL | 9.2.24 |
Inhaltsübersicht
1. installieren
Dieser Abschnitt beschreibt das Verfahren zur Installation von PostgreSQL.
1-1. Installieren von PostgreSQL
Führen Sie die PostgreSQL-Installation mit dem Befehl yum durch. Führen Sie die Arbeiten als root-Benutzer durch.
[username@hostname ~]$ su -
[root@hostname ~]# yum -y install postgresql-server
2. Details zur Einrichtung
Dieser Abschnitt beschreibt die Konfiguration bis zum Start von PostgreSQL.
2-1. Erstellen Sie einen eigenen PostgreSQL-Benutzer.
Ich wollte einen eigenen Benutzer erstellen, um PostgreSQL zu manipulieren (psql-Befehle verwenden), aber der Benutzer war bereits erstellt worden. Ich erinnere mich daran, dass ich in der Vergangenheit Benutzer angelegt habe, vielleicht hat sich die Spezifikation geändert.
Versuchen Sie, mit dem folgenden Befehl zu einem anderen Benutzer zu wechseln.
[root@hostname ~]# su - postgres
Da einige Leute möglicherweise eine ältere Version von PostgreSQL verwenden, sollte erwähnt werden, dass das Verfahren zum Setzen von Umgebungsvariablen durch Ändern der folgenden ".bashrc" nicht mehr notwendig ist.
export PGHOME=/var/lib/pgsql
export PGDATA=/var/lib/pgsql/data
export PGHOST=localhost
Das Standard-PGDATA für Postgres-Benutzer scheint jetzt '/var/lib/pgsql/data' zu sein. Es wird beschrieben, dass es sich auf "/usr/lib/systemd/system/postgresql.service" bezieht.
2-2. PostgreSQL-Datenaufbereitung
Erstellen Sie PostgreSQL-Daten. Die Kodierung ist UNICODE. Das Verzeichnis "/var/lib/pgsql/data" wurde standardmäßig erstellt, aber wer dies nicht getan hat, wird ebenfalls aufgefordert, einen Ordner zu erstellen.
-bash-4.2$ initdb --encoding=UNICODE
Da "PGDATA=/var/lib/pgsql/data" in "/usr/lib/systemd/system/postgresql.service" gesetzt ist, wird "initdb --encoding=UNICODE" eine DB unter "/var/lib/pgsql/ data/", die DB wird unter "/var/lib/pgsql/data/" erstellt.
2-3. Ändern der Konfigurationsdatei
IP-Adressen für den Zugriff auf PostgreSQL zulassen. Richten Sie das System so ein, dass es für den nicht-lokalen Zugriff passwort-authentifiziert ist.
[root@hostname ~]# vi /var/lib/pgsql/data/postgresql.conf
Ändern Sie 'postgresql.conf' wie folgt.
#------------------------------------------------------------------------------
# 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;
Wenn Sie diese Einstellung vornehmen, können Sie von jeder IP-Adresse aus auf die Website zugreifen, da dies ein wichtiger Teil der Sicherheit ist. Wenn die IP, auf die zugegriffen werden soll, fest ist, geben Sie bitte die feste IP an.
Diese Einstellung ist notwendig, wenn Sie sich von einem anderen Server als dem, auf dem PostgreSQL installiert ist, anmelden, z.B. pgadmin. Diese Einstellung ist nicht erforderlich, wenn Sie sich am Server anmelden und den Befehl psql ausführen. (da die Verbindung von ihm selbst (localhost) ausgeht)
Dies ist eine wichtige Sicherheitseinstellung, daher sollten Sie die Anzahl der Benutzer, die darauf zugreifen können, so weit wie möglich einschränken.
Ändern Sie dann 'pg_hba.conf'.
[root@hostname ~]# vi /var/lib/pgsql/data/pg_hba.conf
Fügen Sie die folgenden Informationen am Ende des Dokuments hinzu.
#Passwort-Authentifizierung von außen.
host all all 0.0.0.0/0 md5
Mit dieser Einstellung wird bei der Verbindung von außen ein Passwort verlangt. Diese Bereiche können schwerwiegende Sicherheitslücken darstellen, wenn sie nicht oder falsch eingerichtet sind, also richten Sie sie bitte mit größter Sorgfalt ein.
2-4. Bootstrap-Check
Nachdem die Vorkonfiguration abgeschlossen ist, überprüfen Sie, ob PostgreSQL startet. Da die DB unter einem postgres-Benutzer erstellt wurde, wechseln Sie vor dem Start zum postgres-Benutzer.
[root@hostname ~]# su - postgres
-bash-4.2$ pg_ctl start
Nachdem PostgreSQL erfolgreich gestartet wurde, überprüfen Sie, ob der Befehl psql ohne Probleme funktioniert. Führen Sie den Befehl psql als Postgres-Benutzer aus.
-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)
Es ist in Ordnung, wenn die oben genannten Ergebnisse zurückgegeben werden.
2-5. Einstellung der automatischen Inbetriebnahme
Obwohl es nicht zwingend erforderlich ist, ist es schwierig, PostgreSQL jedes Mal zu starten, wenn der Server neu gestartet wird. Daher ist es so konfiguriert, dass PostgreSQL automatisch startet, wenn der Server gestartet wird. Er registriert sich auch bei dem Befehl systemctl. Bitte beachten Sie, dass dieses Verfahren für CentOS7 gilt. Wenn Sie also ein anderes Betriebssystem als CentOS7 verwenden, müssen Sie den Befehl Service verwenden, um dieses Problem zu lösen.
Überprüfen Sie, ob '/usr/lib/systemd/system/postgresql.service' existiert. Wenn nicht, erstellen Sie "postgresql.service" mit dem folgenden Verfahren. Als Root-Benutzer ausführen.
[root@hostname ~]# touch /etc/systemd/system/postgresql.service
[root@hostname ~]# vi /etc/systemd/system/postgresql.service
Die folgenden Informationen werden bereitgestellt.
[Unit]
#Beschreibung.
Description=PostgreSQL
#Kontrolle vor und nach der Ausführung.
#Before=xxx.service
After=network.target
[Service]
#Benutzer- und Gruppenbezeichnung
User=postgres
Group=postgres
#Nach der Aktivierung setzen Sie den Status auf Aktiviert.
Type=oneshot
RemainAfterExit=yes
#Starten, stoppen und neu laden.
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 entsprechende Einstellungen.
WantedBy=multi-user.target
Als nächstes registrieren Sie sich mit dem Befehl 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. Hinzufügen eines administrativen Benutzers zu PostgreSQL
Erstellen Sie einen Benutzer, der innerhalb der PostgreSQL-Anwendung verwendet wird, getrennt von dem Benutzer, der PostgreSQL von Linux aus bedient. Dies ist der Benutzer, der mit pgadmin usw. arbeitet. Ich möchte das Passwort des Postgres-Benutzers, der standardmäßig existiert, ändern und ihn verwenden.
Führen Sie den folgenden Befehl als postgres-Benutzer aus.
-bash-4.2$ psql
postgres=# alter role postgres with password '(Computer-)Passwort';
postgres=# \q
※Geben Sie das gewünschte Passwort in das Feld "Passwort" ein.
2-7. Bohren von Brandmauern
Erlauben Sie den Zugriff auf den PostgreSQL-Port, da die Firewall (iptables für CentOS6 und früher) unter CentOS7 standardmäßig nur ssh-Zugriff erlaubt. Fügen Sie auch die Option "permanent" hinzu, um die Konfiguration dauerhaft zu machen.
[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:
Wenn dort "Ports: 5432/tcp" steht, ist es in Ordnung.
Zugang über pgadmin. Sie sollten in der Lage sein, sich als Postgres-Benutzer mit dem soeben festgelegten Passwort anzumelden.
3. Zusammenfassung
Wir haben die Anfangskonfiguration beschrieben, die bei der Installation von PostgreSQL erforderlich ist. Die anfängliche Einrichtung von PostgreSQL kann schwierig sein, daher lesen Sie bitte diesen Abschnitt.
Danke, dass Sie bis zum Ende zugesehen haben.
■INFORMATION
Bitte klicken Sie hier, um zur Seite INFORMATIONEN zu gelangen.
■PROFILE
Bitte klicken Sie hier für ein Profil.
■Kontaktinformationen.
Wenn Sie Fragen zu diesem Artikel haben, kontaktieren Sie uns bitte hier.