Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Wo sind die Templates?

  1. #1
    Rolf Tschan ist offline Neuer Benutzer
    Registriert seit
    23.06.2011
    Ort
    Gunten, Bern, Switzerland, Switzerland
    Beiträge
    25

    Böse Wo sind die Templates?

    Das Thema ist nicht neu; ich habe es bereits früher einmal gepostet, doch ich erhalte dort keine Hilfe (mehr).

    Nach einer vollständigen Deinstallation (apt-get purge); nach Löschen alter Datenbanken (früher fehlerhaft installierte Cluster-Verzeichnisse); nach Löschen von .profile für "postgres"; bei einem meines Erachtens also völlig jungfäulichen Debian System, installiert mir apt-get postgresql keine Templates.

    Nach dem "apt-get install" wechsle ich zu "su - postgres" und versuche, die Clusters zu erzeugen: INITDB. Dies wird reklamiert, obwohl ich nach dem (vermeintlich erfolgreichen) install PGDATA gesetzt habe (echo $PGDATA zeigt mir "/usr/local/psql/data"). Also, zweiter Versuch: INITDB -D /usr/local/psql/data". Diesmal sieht wieder alles ok aus; keine Fehlermeldungen.

    Und nun? Der Server läuft zwar, sieht eigentlich alles i.O. aus, doch PhpPgAdmin zeigt mir ausschliesslich ein LEERES Schema "public" (im tablespace "pg_default").

    "Volltextsuche" ist da, ansonsten aber nichts.

    Wohin sind die Templates "verschwunden"? Was läuft hier schief? Was mache ich falsch?

    Kann mir wirklich niemand dabei weiterhelfen?

    So sieht übrigens mein .profile für postgres aus. Ich habe es direkt nach "apt-get install" aktiviert:
    Code:
    # /home/postgres/.profile: executed by the command interpreter for login shells.
    # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
    # exists.
    # see /usr/share/doc/bash/examples/startup-files for examples.
    # the files are located in the bash-doc package.
    
    # the default umask is set in /etc/profile; for setting the umask
    # for ssh logins, install and configure the libpam-umask package.
    #umask 022
    
    # if running bash
    if [ -n "$BASH_VERSION" ]; then
        # include .bashrc if it exists
        if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
        fi
    fi
    
    # set PATH so it includes user's private bin if it exists
    if [ -d "$HOME/bin" ] ; then
        PATH="$HOME/bin:$PATH"
    fi
    
    # rts 2011-10-11 >
    PGDATA="/usr/local/psql/data"
    
    PATH="$PATH:/usr/lib/postgresql/8.4/bin"
    
    function mypath(){
        old=$IFS
        IFS=:
        printf "%s\n" $PATH
        IFS=$old
    }
    # rts 2011-10-11 <
    Geändert von Rolf Tschan (12.10.2011 um 17:24 Uhr)

  2. #2
    akretschmer ist gerade online Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.467

    Standard

    Zitat Zitat von Rolf Tschan Beitrag anzeigen
    Das Thema ist nicht neu; ich habe es bereits früher einmal gepostet, doch ich erhalte dort keine Hilfe (mehr).
    Kann es sein, daß hier ein Irrtum Deinerseits vorliegt?

    Templates sind Datenbanken, aus denen andere Datenbanken generiert werden. Ich kenne PGAdmin nicht, aber versuche mal, als User postgres, ein "psql -l" auszuführen. Vermutlich siehst Du dort template0 und template1, außerdem eine postgres.


    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  3. #3
    Gisman ist offline Erfahrener Benutzer
    Registriert seit
    20.01.2006
    Ort
    Pfalz
    Beiträge
    791

    Standard

    Was phpPGAdmin macht weiß ich nicht, aber PGAdmin blendet die in der Oberfläche aus und bietet sie nur beim Erstellen einer neuen DB an. Unter psl -l sollten sie aber erscheinen.

    Gruß Uwe
    Have a lot of fun!

  4. #4
    Rolf Tschan ist offline Neuer Benutzer
    Registriert seit
    23.06.2011
    Ort
    Gunten, Bern, Switzerland, Switzerland
    Beiträge
    25

    Standard

    Danke Euch beiden!

    Es sieht tatsächlich so aus, als hätte ich ein Phanton gejagt: "psql -l" zeigt mir die Templates an, es ist bloss PhpPgAdmin, der das nicht tut.

    Was mich noch immer etwas verwirrt, ist folgendes:

    1. Die Installation (apt-get) startet automatisch den DB-Server "main".
    2. Danach habe ich ja INITDB gemacht. Dieses sagt mir zum Schluss, ich könne den Server jetzt (zB mit pg-ctl) starten; müsse dabei aber (mit -D) das Verzeichnis angeben.

    Meine Fragen dazu sind:
    a) Was ist das: ZWEI DB-Servers starten?
    b) Mit welchem Verzeichnis läuft denn der erste (der automatisch durch apt-get gestartet worden ist)?
    c) Im .profile von postgres habe ich PGDATA gesetzt. echo bestätigt mir das auch. Trotzdem sagt mir pg-ctl, ich müsse das Verzeichnis angeben (oder PGDATA setzen).
    d) Wenn ich meine Kiste (Debian) neu starte: Wo ist festgelegt, welcher DB-Server mit welchem Verzeichnis gestartet werden soll?

    Ich weiss, dass das "dumme Fragen" sind. Aber ich verspreche: Wenn ich das mal begriffen habe (bin Linux-Neuling), werde ich dasselbe nicht nochmal fragen :-)

  5. #5
    Gisman ist offline Erfahrener Benutzer
    Registriert seit
    20.01.2006
    Ort
    Pfalz
    Beiträge
    791

    Standard

    Zitat Zitat von Rolf Tschan Beitrag anzeigen
    Meine Fragen dazu sind:
    a) Was ist das: ZWEI DB-Servers starten?
    b) Mit welchem Verzeichnis läuft denn der erste (der automatisch durch apt-get gestartet worden ist)?
    c) Im .profile von postgres habe ich PGDATA gesetzt. echo bestätigt mir das auch. Trotzdem sagt mir pg-ctl, ich müsse das Verzeichnis angeben (oder PGDATA setzen).
    d) Wenn ich meine Kiste (Debian) neu starte: Wo ist festgelegt, welcher DB-Server mit welchem Verzeichnis gestartet werden soll?

    Ich weiss, dass das "dumme Fragen" sind. Aber ich verspreche: Wenn ich das mal begriffen habe (bin Linux-Neuling), werde ich dasselbe nicht nochmal fragen :-)
    a) Naja, dann laufen da halt zwei Serverprozesse, dazu müssen sie unterschiedliche Ports und Datenverzeichnisse benutzen.
    b) Kenn mich in debian nicht aus, aber vermutlich sollte er das Verzeichnis benutzen, das irgendwo in der Konfiguration oder bei der Installation per default festgelegt wurde. Könnte auch in /var/ irgendwo sein.
    c) was sagt denn echo $PGDATA als user postgres ausgeführt? Aber du würdest ein Problem mit dem 2. Server bekommen wenn er das Verzeichnis vom ersten benutzen soll.
    d) Du wirst in /etc/init.d ein Startskript postgresql finden. Dort werden die Umgebungsvariablen gelesen und die Dienste gestartet. Wenn du einen 2. Server starten möchtest, kannst du das kopieren und dort z.B. auf eine andere Variable für das Verzeichnis angeben, z.B. $PGDATA2. Diese kannst du analog zur ersten in .profile anlegen. Der Rest der Konfiguration findet in der Datei postgresql.conf im Datenverzeichnis statt.

    Soweit erstmal.

    Gruß Uwe
    Have a lot of fun!

  6. #6
    Rolf Tschan ist offline Neuer Benutzer
    Registriert seit
    23.06.2011
    Ort
    Gunten, Bern, Switzerland, Switzerland
    Beiträge
    25

    Standard

    a) Aha. Na gut: Zwei Serverprozesse will ich nicht. Wozu auch?

    b) Wenn ich wüsste, wie sich das herausfinden (verifizieren) lässt, dann wüsste ich auch, welche "postgresql.conf" zum Tragen kommt.
    In /var/lib/postgresql/8.4/main/... ist durch "apt-get install" eine DB erstellt worden; doch ist es DIESES Verzeichnis, mit welchem der erste (von "install" gestartete) Server läuft? Gibt es einen Trick, den Serverprozess zur Laufzeit danach abzufragen?
    Und wenn dem so ist: Weshalb muss man nach der Installation mit INITDB eine ZWEITE DB anlegen? Wenn ich keinen 2ten Serverprozess laufen lassen will: Wozu dient dann diese zweite?

    c)
    Code:
    root@nas:~# su - postgres
    postgres@nas:~$ echo $PGDATA
    /usr/local/psql/data
    (s. mein .profile für postgres. Im ersten Beitrag kopiert)

    d) Das Startskript in init.d verweist auf "/etc/postgresql/<version>/<cluster>/environment". Diese Datei ist jedoch (bis auf ein paar Kommentare) leer:
    Code:
    # environment variables for postmaster process
    # This file has the same syntax as postgresql.conf: 
    #  VARIABLE = simple_value
    #  VARIABLE2 = 'any value!'
    # I. e. you need to enclose any value which does not only consist of letters,
    # numbers, and '-', '_', '.' in single quotes. Shell commands are not
    # evaluated.

  7. #7
    akretschmer ist gerade online Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.467

    Standard

    Zitat Zitat von Rolf Tschan Beitrag anzeigen
    a) Aha. Na gut: Zwei Serverprozesse will ich nicht. Wozu auch?

    b) Wenn ich wüsste, wie sich das herausfinden (verifizieren) lässt, dann wüsste ich auch, welche "postgresql.conf" zum Tragen kommt.
    psql ist Dein Freund ;-)

    Code:
    test=*# show config_file;
                  config_file
    ---------------------------------------
     /usr/local/pgsql/data/postgresql.conf
    (1 row)
    
    test=*# show data_directory;
        data_directory
    -----------------------
     /usr/local/pgsql/data
    (1 row)
    Und mit show all; bekommst richtig viel zu lesen ...


    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  8. #8
    Rolf Tschan ist offline Neuer Benutzer
    Registriert seit
    23.06.2011
    Ort
    Gunten, Bern, Switzerland, Switzerland
    Beiträge
    25

    Standard

    Das sieht bei mir jetzt so aus:
    Code:
    show config_file;
                   config_file
    ------------------------------------------
     /etc/postgresql/8.4/main/postgresql.conf
    (1 Zeile)
    
    postgres=# show data_directory;
            data_directory
    ------------------------------
     /var/lib/postgresql/8.4/main
    (1 Zeile)
    Soweit also alles klar.

    Doch: Wozu jetzt die zweite DB anlegen (INITDB), wenn ich nicht zwei Serverprozesse laufen lassen (und dadurch 2 Ports besetzen) will?
    Ich habe, ganz offensichtlich, noch nicht ganz alles verstanden...

  9. #9
    akretschmer ist gerade online Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.467

    Standard

    Zitat Zitat von Rolf Tschan Beitrag anzeigen
    Das sieht bei mir jetzt so aus:
    Code:
    show config_file;
                   config_file
    ------------------------------------------
     /etc/postgresql/8.4/main/postgresql.conf
    (1 Zeile)
    
    postgres=# show data_directory;
            data_directory
    ------------------------------
     /var/lib/postgresql/8.4/main
    (1 Zeile)
    Soweit also alles klar.

    Doch: Wozu jetzt die zweite DB anlegen (INITDB), wenn ich nicht zwei Serverprozesse laufen lassen (und dadurch 2 Ports besetzen) will?
    Ich habe, ganz offensichtlich, noch nicht ganz alles verstanden...
    Debian erzeugt Dir IMHO alles schon, INITDB ist unnötig.


    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  10. #10
    Rolf Tschan ist offline Neuer Benutzer
    Registriert seit
    23.06.2011
    Ort
    Gunten, Bern, Switzerland, Switzerland
    Beiträge
    25

    Standard

    Aha

    Dann ist also die Installationsanleitung (zumindest für Debian-Installationen mittels "apt-get install") nicht so ganz richtig. Das alles hat mich jetzt ziemlich verwirrt.

    Immerhin: Für den Moment scheint alles klar zu sein. Konsequenterweise habe ich jetzt mein .profile für postgres (setzen von PGDATA) richtig gestellt und kann demnächst mal mit meinen ersten ECHTEN Datenbanken loslassen.

    Macht Euch gefasst, Leute: ICH KOMME WIEDER

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. was sind das für Koordinaten?
    Von akretschmer im Forum PostGIS
    Antworten: 8
    Letzter Beitrag: 15.11.2011, 20:02
  2. Tabellen sind Read-Only
    Von ZwergMD im Forum Allgemeines
    Antworten: 14
    Letzter Beitrag: 25.05.2010, 08:18
  3. Was sind große Datenmengen für Postgre?
    Von MS47 im Forum Allgemeines
    Antworten: 5
    Letzter Beitrag: 22.10.2007, 15:52
  4. Log Dateien - Wo sind die?
    Von waldi im Forum Allgemeines
    Antworten: 3
    Letzter Beitrag: 03.07.2007, 13:17

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum