Wo sind PostgreSQL-Datenbanken auf meinem Computer gespeichert?

7

Das mag eine dumme Frage sein, aber ich bin wirklich neu darin. Also erstelle ich eine Postgres-Datenbank auf dem Postgres-Server, die ich mit diesem Befehl gestartet habe:

sudo -u postgres psql

Und dann habe ich den Befehl ausgeführt:

CREATE DATABASE database;

Was angeblich die Datenbank erstellt hat. Aber wo ist diese Datenbank? Wo finde ich es auf meinem Computer?


quelle
1
Warum willst du das wissen ? Verwenden Sie pg_dump für die Sicherung.
Luc M
2
Ich empfehle, mit postgresql.org/docs/current/static/tutorial.html zu beginnen . Und Sie haben PostgreSQL nicht mit dem Befehl gestartet, sondern mit ihm verbunden . Es ist ein Server und ist der Client. psqlpsql
Craig Ringer
1
Die "Datenbank" ist keine einzelne Datei, die Sie mitnehmen oder ansehen können. Ein Datenbank - Server verwalten diese anders als zB Microsoft Access.
a_horse_with_no_name

Antworten:

9

Wo genau Ihre Daten gespeichert sind, hängt davon ab, wie Sie PostgreSQL installiert und konfiguriert haben. Ausführen der

show data_directory

Befehl als postgres-Benutzer (aus dem psql-Tool oder einem anderen Client) sagt Ihnen jedoch, wo es sich befindet. Wenn Sie es beispielsweise über das Debian- oder Ubuntu-Repository installiert haben, werden Sie wahrscheinlich feststellen, dass sich Ihre Datendateien irgendwo wie /var/lib/postgresql/9.2/main befinden.

Es gibt dort wahrscheinlich nichts schrecklich Interessantes. Manchmal gibt es ein paar Konfigurationsdateien wie pg_hba.conf (die Windows-Version legt sie zumindest dort ab), aber wenn Sie auf Debian sind, finden Sie diese unter / etc / postgresql /.

Wenn Sie erwarten, dass Ihre Datenbank eine einzelne Datei ist, die Sie zwischen Systemen usw. verschieben können, ist es wahrscheinlich besser, eine einfachere eingebettete Datenbank wie SQLite zu verwenden.

Davidg
quelle
6

Verwenden Sie diese Abfrage, um festzustellen, wo sich das Datenverzeichnis befindet.

show data_directory;

Verwenden Sie, um alle Laufzeitparameter anzuzeigen

show all;

Sie können Tablespaces in anderen Teilen des Dateisystems erstellen. Verwenden Sie diese Abfrage, um den Speicherort von Tablespaces anzuzeigen, die sich möglicherweise neben dem Datenverzeichnis irgendwo im Dateisystem befinden.

SELECT * FROM pg_tablespace;
Mike Sherrill 'Cat Recall'
quelle
+1 beim Erwähnen von Tablespaces (und wie man die Informationen erhält).
Erwin Brandstetter
1

Wenn Sie den Befehl "CREATE DATABASE database" ausführen, wird der Tabellenbereich pg_default verwendet.

Sie können zuerst Ihren eigenen Tabellenbereich erstellen, z

CREATE TABLESPACE tbs_01 [ OWNER user_name ] LOCATION 'directory';

und dann erstellen Sie Ihre Datenbank:

CREATE DATABASE datname
WITH  OWNER = user_name 
      TEMPLATE = template0 
      ENCODING = 'UTF8' 
      TABLESPACE = tbs_01;
Franken
quelle
0

Alle haben bereits geantwortet, aber nur für die neuesten Updates. Wenn Sie wissen möchten, wo sich alle Konfigurationsdateien befinden, führen Sie diesen Befehl in der Shell aus

SELECT name, setting FROM pg_settings WHERE category = 'File Locations';
Saad Saadi
quelle
0

Debian / Ubuntu

Ubuntu und Debian zeigen all dies mit pg_lsclusters- einem der vielen Administratoren-Dienstprogramme, die sie hinzufügen . Die Ausgabe sieht ungefähr so ​​aus

Ver Cluster Port Status Owner    Data directory               Log file
9.5 main    5433 online postgres /var/lib/postgresql/9.5/main /var/log/postgresql/postgresql-9.5-main.log

Wenn Sie nur das Datenverzeichnis möchten, dann | cut -d " " -f 6

pg_lsclusters -h | cut -d " " -f 6
/var/lib/postgresql/9.5/main
Evan Carroll
quelle