Sie können PostgreSQL ohne Root-Privilegien ausführen, indem Sie eine neue Instanz erstellen (die PostgreSQL als „Cluster“ bezeichnet) und starten.
Sie können die Ubuntu-Init-Skripte, Wrapper-Tools wie pg_ctlcluster
nicht verwenden , usw., wenn Sie dies tun. Sie dürfen nur die eigenen Tools von PostgreSQL verwenden.
Um die neue PostgreSQL-Instanz mit dem Superuser zu erstellen, der Ihrem Benutzernamen, dem Datenverzeichnis in Ihrem Home-Verzeichnis und standardmäßig aktivierter md5-Authentifizierung entspricht, verwenden Sie:
initdb -D $HOME/my_postgres -A md5 -U $USER
Stellen Sie wie gewünscht ein; siehe initdb --help
.
Sie müssen dann postgresql.conf
bearbeiten um den port
zu ändern auf einen nicht standardmäßigen, da Ihr System wahrscheinlich sein eigenes Postgres auf dem Standardport 5432 ausführt. (Wenn Sie den Zugriff ausschließlich auf Sie beschränken möchten, können Sie stattdessen listen_addresses = ''
und unix_socket_directories = /home/myuser/postgres_socket
oder Wasauchimmer. Aber es ist einfacher, einfach einen anderen Port zu verwenden.)
So starten Sie es:
pg_ctl -D $HOME/my_postgres -w start
Um sich damit zu verbinden, geben Sie den gewählten Port an:
psql -p 5434 ...
(Wenn Sie unix_socket_directories
geändert haben Sie sollten auch den Pfad angeben, den Sie angegeben haben, z. B. -h /home/myuser/postgres_socket
.)
Um psql
zu machen usw. verbinden Sie sich standardmäßig mit Ihrem Postgres, bearbeiten Sie Ihren ~/.bashrc
so etwas hinzufügen wie
export PGPORT=5434
Beachten Sie jedoch, dass sich dies auch auf den Standardport für Verbindungen zu anderen Hosts auswirkt.
Um es zu stoppen:
pg_ctl -D $HOME/my_postgres -w stop
Sie können es aber auch einfach herunterfahren, ohne es zu stoppen, es kümmert sich nicht darum und wird sich sicher erholen, wenn Sie es das nächste Mal starten.
Um es automatisch zu starten, wenn Sie sich anmelden, wenn es in Ihrem Home-Verzeichnis eingerichtet ist, müssen Sie die Run-at-Startup-Funktionen Ihrer Desktop-Umgebung verwenden. Sie variieren je nach Umgebung und Version, daher kann ich hier keine Details angeben; es ist anders für GNOME 3, Unity (ubuntu), KDE, XFCE usw.
Beachten Sie, dass dieser Ansatz immer noch die Pakete des Systems verwendet für PostgreSQL. Dies ist wichtig, denn wenn Sie (sagen wir) PostgreSQL 9.4 deinstallieren und 9.6 installieren, funktioniert Ihre Kopie in Ihrem Home-Verzeichnis nicht mehr. Wenn Sie möchten, dass es vollständig unabhängig von Systempaketen ist, was Sie wahrscheinlich tun, wenn Sie das System nicht kontrollieren, sollten Sie PostgreSQL aus den Quellen kompilieren oder das binäre Installationsprogramm verwenden, um es in Ihrem Home-Verzeichnis zu installieren.