postgresql im Heimnetz verfügbar machen

Teckler

Lt. Commander
Registriert
Mai 2020
Beiträge
1.173
Hallo zusammen,

ich möchte in meinem Heimnetz von verschiedenen Windows Rechnern per MySQL Workbench auf eine postgresql-DB ,die auf einem ubuntu Server 21.10. liegt, zugreifen können.
Leider bekomme ich es nicht hin und benötige Hilfe.
Es bleibt alles im Heimnetz, KEINE Freigabe fürs Internet und auch nicht geplant.
Ich will nur SQL Scripts Entwickeln und Testen können.


Von Windows Rechnern per MySQL Workbench auf eine Maria-DB, die auf einem ubuntu Server 21.10 liegt, bekomme ich hin.
Dazu ist nur ein Eintrag in der /etc/mysql/mariadb.conf.d/50-server.cnf nötig:
Alter Wert:
bind-address = 127.0.0.1
Neuer Wert:
bind-address = 0.0.0.0
.
Für die postgresql-DB habe ich ähnliche Konfigdateien gefunden und probiert, funktioniert aber nicht:
/etc/postgresql/13/main/postgresql.conf
Alter Wert:
#listen_addresses = 'localhost'
Neuer Wert:
listen_addresses = '*'
.
/etc/postgresql/13/main/pg_hba.conf
Alte Werte:
127.0.0.0/32
Neue Werte:
0.0.0.0/0
.
Vom Windows Rechner komme ich per SSH und einer Samba Freigabe auf den ubuntu Server 21.10 mit der postgresql-DB

An der Firewall habe ich nichts konfiguriert.
Maria-DB läuft ohne die Firewall anzufassen.
Muss für für postgresql-DB evtl an der Firewall geschraubt werden, und falls ja was ?

Port für die Maria DB ist 3306
Port für die postgresql-DB müsste 5432 sein

Danke schon mal für Tipps und Grüße an Alle

Ohh.. moment, jetzt sehe ich was
Die Maria_DB hab ich nach Änderung der Konfig-Datei neu gestartet mit:
sudo systemctl stop mariadb
sudo systemctl start mariadb

Sollte mal die Befehle für postgresql-DB Neustart suchen...
 
Ja, nach einer Konfigurationsänderung muss der Dienst natürlich neu gestartet werden, damit die Änderungen auch übernommen werden. Die Befehle sind übrigens für alle Dienste die gleichen:
Bash:
(sudo) systemctl stop/start dienstname

Wobei zum reinen Neustarten eines Dienstes auch "restart" geht statt den Dienst separat zu stoppen und anschließend wieder zu starten.
 
  • Gefällt mir
Reaktionen: Teckler
Versuche das bitte in der pg_hba.conf

Code:
# "local" is for Unix domain socket connections only
local   all             all                                     md5 => ändern, für lokales Login auf dem Server
# IPv4 local connections:
host    all             all             0.0.0.0/0               md5 => auf "password" ändern, wenn remote Zugriff per Passwort notwendig und DB neu starten!
host    all             all             127.0.0.1/32            md5

Wichtig, vorher für postgres User ein Kennwort setzen, sonst kommst Du nicht mehr ran. Aber das vernünftiger Mensch machst Du ja hoffentlich eine Kopie von allen Dateien, bevor Du sie anpaßt? ;)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Teckler
Danke zusammen,
Werde ich gleich testen wenn ich zu Hause bin
 
PHuV schrieb:
md5 => ändern, für lokales Login auf dem Server
Ich probiere lange rum und nichts geht
Soll das md5 durch den postgresql superuser ersetzt werden ?
Wie lege ich eigentlich einen postgresql superuser an ?
Ginge das so etwa, nennen wir ihn Heinz:
Code:
sudo su - postgres -c "createuser Heinz"
sudo -u postgres psql
GRANT ALL ON *.* TO 'Heinz';
\q


Und jetzt sehe ich daß die DB nicht mehr anspringt
Egal ob :
sudo service postgresql start
sudo service postgresql restart
sudo systemctl start postgresql
sudo /etc/init.d/postgresql restart

Der Statusbefehl zeigt immer ein "Finished PostgreSQL RDBMS" zum Schluß
Auch nach Neustart.

Code:
● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor pr>
     Active: active (exited) since Mon 2021-10-25 18:51:06 CEST; 1min 19s ago
    Process: 1075 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 1075 (code=exited, status=0/SUCCESS)
        CPU: 3ms

Okt 25 18:51:06 n5100 systemd[1]: Starting PostgreSQL RDBMS...
Okt 25 18:51:06 n5100 systemd[1]: Finished PostgreSQL RDBMS.


Habe zwar in der pg_hba.conf zurück gesetzt auf md5:
Code:
# IPv4 local connections:
host    all             all             0.0.0.0/0              md5

Geht aber auch nicht
Ich mache dann mal Feierabend für heute.
Vielleicht sieht jemand meinen Fehler ?

Habe noch die Änderung in der pg_hba.conf auskommentiert.
Code:
# IPv4 local connections:
#host    all             all             0.0.0.0/0              md5

Geht aber auch nicht.

Immerhin scheint die Änderung in der postgresql.conf geholfen zu haben:
Code:
listen_addresses = '*'         # what IP address(es) to listen on;

ss -nlt | grep 5432
LISTEN 0      244          0.0.0.0:5432       0.0.0.0:*
LISTEN 0      244             [::]:5432          [::]:*
 
Zuletzt bearbeitet:
Teckler schrieb:
Ich probiere lange rum und nichts geht
Soll das md5 durch den postgresql superuser ersetzt werden ?
Nein.
Teckler schrieb:
Wie lege ich eigentlich einen postgresql superuser an ?
Ginge das so etwa, nennen wir ihn Heinz:
Code:
sudo su - postgres -c "createuser Heinz"
sudo -u postgres psql
GRANT ALL ON *.* TO 'Heinz';
\q
Ich tät mich erst mal einloggen in die Console und das so machen.
Teckler schrieb:
Der Statusbefehl zeigt immer ein "Finished PostgreSQL RDBMS" zum Schluß
Auch nach Neustart.
Dann hast Du was vermurkst. Einfach nochmal neu installieren oder den Zustand herstellen vor den Änderungen.
Teckler schrieb:
Habe zwar in der pg_hba.conf zurück gesetzt auf md5:
Code:
# IPv4 local connections:
host    all             all             0.0.0.0/0              md5

Geht aber auch nicht
Du mußt alles eintragen, wie angegeben. Und der 0.0.0.0/0 muss an erster Stelle stehen.
Teckler schrieb:
Habe noch die Änderung in der pg_hba.conf auskommentiert.
Code:
# IPv4 local connections:
#host    all             all             0.0.0.0/0              md5
Du brauchst einen Eintrag für host von außen, und local von innen.

Teckler schrieb:
Geht aber auch nicht.

Immerhin scheint die Änderung in der postgresql.conf geholfen zu haben:
Code:
listen_addresses = '*'         # what IP address(es) to listen on;

ss -nlt | grep 5432
LISTEN 0      244          0.0.0.0:5432       0.0.0.0:*
LISTEN 0      244             [::]:5432          [::]:*
Das ist ja auch so bei den Postgresql Installationen alles so dokumentiert, siehe
https://linuxize.com/post/how-to-install-postgresql-on-centos-8/

Welchle Postgres Version auf welchem OS verwendest Du bitte genau?
 
PHuV schrieb:
Welchle Postgres Version auf welchem OS verwendest Du bitte genau?
Läuft wie eingangs erwähnt auf einem aktuellen ubuntu Server 21.10
Und die Postgre Version ist die:
Code:
                                                     version
-----------------------------------------------------------------------------------------------------------------
 PostgreSQL 13.4 (Ubuntu 13.4-1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.2.0-1ubuntu3) 11.2.0, 64-bit
(1 row)

Teckler schrieb:
Der Statusbefehl zeigt immer ein "Finished PostgreSQL RDBMS" zum Schluß
Auch nach Neustart.

Das wird sogar schon bei einer frisch installierten Postgre DB angezeigt.
Die Datenbank selbst läuft (active) und man kommt auch rein
Warum meckert eine DB eigentlich keine Rechte im /home Verzeichnis an ??
1635351418085.png


Habe aber immer noch keinen Zugang vom Windows PC mit meiner MySQL Workbench

Folgendes ist eingestellt:
1) in der postgresql.conf die Zeile listen_addresses = '*' aktiviert

1635351631584.png


Damit müsste Port 5432 mit allen Verbindungen funktionieren lt. Beschreibung
1635351807722.png


2) In der pg_hba.conf den Remote Zugriff (vom internen Netzwerk) freigegeben in den umkreisten Stellen:
1635352006635.png


Evtl hängt es noch am user
Zur Anlage gibt es widersprüchliche Anleitungen.
Hatte einen angelegt und wollte wieder löschen
Aber auch das geht nicht
Jede Anleitung sagt etwas anderes: drop user oder dropuser
Mir reicht es wieder für heute

to be continued....
 
In der pg_hba.conf hast Du die 127.0.0.1 gelöscht, das solltest Du nicht tun. Schau Dir dazu bitte nochmal den Eintrag von mir oben an.
 
  • Gefällt mir
Reaktionen: Teckler
PHuV schrieb:
Schau Dir dazu bitte nochmal den Eintrag von mir oben an.
ich nehme an Beitrag #3 ist gemeint, wenn nicht bitte korrigieren
Danke schon mal für die Hilfe !

Habe nochmal schnell probiert
Dem postgress user habe ich vorher noch ein Passwort in der Console gegeben:
Code:
sudo -u postgres psql
could not change directory to "/home/donald": Permission denied
psql (13.4 (Ubuntu 13.4-1))
Type "help" for help.

postgres=# \password
Enter new password:
Enter it again:

Die pg_hba.conf ist geändert,
1635363397659.png


Verbindung klappt noch nicht.
Viel fehlt wahrscheinlich nicht mehr.
Mache Morgen weiter....
 
Hat der user mit dem du verbinden willst die "LOGIN" Rolle?
 
  • Gefällt mir
Reaktionen: Teckler
Wäre mir nicht bekannt, daß sie jemals unter Postgresql notwendig wäre. Man legt nur einen User und seine Datenbank an, und sobald die pg_hba.conf und postgresql.conf korrekt konfiguriert sind, bekommt man über diesen User auch sofort den Connect ohne jede weitere Rolle.
 
  • Gefällt mir
Reaktionen: Teckler
Ich will bestehende Tabellen importieren und bearbeiten
Gute Frage mit dem user
 
PHuV schrieb:
Wäre mir nicht bekannt, daß sie jemals unter Postgresql notwendig wäre. Man legt nur einen User und seine Datenbank an, und sobald die pg_hba.conf und postgresql.conf korrekt konfiguriert sind, bekommt man über diesen User auch sofort den Connect ohne jede weitere Rolle.
Ich lege die user meistens mit pgadmin an, dort muss dem user "Can login" gesetzt werden, sonst geht nix.
 
Ich mache es immer per Konsole, und da habe ich in allen Versionen bis jetzt 14 nicht setzen müssen.

Update: Habs gerade mit Teckler per AnyDesk durchgespielt, geht nun alles. Und es mußte KEINE Login-Rolle vergeben werden! Einfach einen User anlegen, Datenbank anlegen mit User als Besitzer, fertig.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Teckler
Zurück
Oben