Christoph Schnauß: PostgreSQL unter WindowsXP

hallo Forum,

hat jemand mal probiert, PostgreSQL unter Windows zum Laufen zu bringen? Man kann sich ein Installationspaket (ZIP, das zwei MSI enthält) von ftp://ftp2.de.postgresql.org/pub/postgresql/win32 herunterladen. Eine Installationsanleitung gibt es auch - sogar in Deutsch.
Trotzdem habe ich erhebliche Probleme gehabt: erstmal will das nur auf NTFS installiert werden, also mußte ich mir eine NTFS-Partition freiräumen. Dann wollte es mein Benutzerkonto partout nicht akzeptieren und ein neues haben. Mit dem neuen Konto läßt es sich aber nicht starten, und schon gar nicht als Dienst. Nur der "Administrator" hat es plötzlich, obwohl der nach allen Howtos und Anleitungen gar nicht darf.
Viel mehr habe ich jetzt noch nicht probiert, aber mich würde schon interessieren, ob es jemand gibt, der das gute Stück unter WindowsXP lokal benutzt und damit irgendwelche guten oder schlechten Erfahrungen gemacht hat.

Grüße aus Berlin

Christoph S.

--
Visitenkarte
ss:| zu:) ls:& fo:) va:) sh:| rl:|
  1. Hallo Christoph,

    hat jemand mal probiert, PostgreSQL unter Windows zum Laufen zu bringen?

    ja, ich. PostgreSQL 8.1 :-)

    Man kann sich ein Installationspaket (ZIP, das zwei MSI enthält) von ftp://ftp2.de.postgresql.org/pub/postgresql/win32 herunterladen. Eine Installationsanleitung gibt es auch - sogar in Deutsch.

    Trotzdem habe ich erhebliche Probleme gehabt: erstmal will das nur auf NTFS installiert werden, also mußte ich mir eine NTFS-Partition freiräumen.

    Das ist mir gar nicht aufgefallen. Welch Wunder, meine Installationen NT-ähnlicher Betriebssysteme verwenden im Normalfall ausschließlich NTFS-Partitionen.

    Dann wollte es mein Benutzerkonto partout nicht akzeptieren und ein neues haben. Mit dem neuen Konto läßt es sich aber nicht starten, und schon gar nicht als Dienst.

    Bei mir läuft Postgres als Dienst unter dem Benutzer postgres, ein typisches Dienstkonto. So etwas ist für Datenbankmanagementsystem unter Windows-Systemen eine übliche Vorgehensweise, insbesondere wenn es um Sicherheit geht. Soweit ich mich erinnere, konnte dieser Benutzer durch die Installationsroutine angelegt werden.

    Nur der "Administrator" hat es plötzlich, obwohl der nach allen Howtos und Anleitungen gar nicht darf.

    Da kann ich nichts dazu sagen.

    Viel mehr habe ich jetzt noch nicht probiert, aber mich würde schon interessieren, ob es jemand gibt, der das gute Stück unter WindowsXP lokal benutzt und damit irgendwelche guten oder schlechten Erfahrungen gemacht hat.

    Gut, viel mehr als für meine Skripte für den vorgesehenen Feature-Artikel und für gelegentliche Tests bei PostreSQL-Fragen im Forum habe ich PostgreSQL noch nicht verwendet. Für die Verwaltung verwende ich pgAdmin III. An Probleme bei der Installation oder beim Betrieb kann ich mich nicht erinnern.

    Freundliche Grüße

    Vinzenz

    1. hallo Vinzenz,

      Bei mir läuft Postgres als Dienst unter dem Benutzer postgres

      Ja, der wird als "default" vorgeschlagen. Störrisch, wie ich bin, hab ich den Vorschlag natürlich abgelehnt, weil es so ein Konto auf meiner Kiste schließlich nicht gibt, und habe einen existierenden Kontonamen angegeben. Mit entsprechenden Folgen :-(

      An Probleme bei der Installation oder beim Betrieb kann ich mich nicht erinnern.

      Das klingt immerhin aufmunternd.

      Grüße aus Berlin

      Christoph S.

      --
      Visitenkarte
      ss:| zu:) ls:& fo:) va:) sh:| rl:|
      1. Hallo Christoph,

        Bei mir läuft Postgres als Dienst unter dem Benutzer postgres

        Ja, der wird als "default" vorgeschlagen. Störrisch, wie ich bin, hab ich den Vorschlag natürlich abgelehnt, weil es so ein Konto auf meiner Kiste schließlich nicht gibt, und habe einen existierenden Kontonamen angegeben. Mit entsprechenden Folgen :-(

        Hmm ja, ich kann mich nicht mehr so genau an die Installationsanleitung erinnern, aber Du musst berücksichtigen, dass dieses Dienstkonto über bestimmte Berechtigungen verfügen muss, z.B. "Als Dienst anmelden". Wenn Du die Installationsroutine ein Konto anlegen läßt, dann sorgt der Installer dafür, dass dieses Konto die erforderlichen Berechtigungen erhält. Verwendest Du ein vorhandenes Konto, dann bist Du für diese Aufgaben zuständig. D.h. Gruppenrichtlinieneditor öffnen und notwendige Berechtigungen vergeben.

        Freundliche Grüße

        Vinzenz

        1. hallo Vinzenz,

          Hmm ja, ich kann mich nicht mehr so genau an die Installationsanleitung erinnern

          Es gibt noch etwas, was ich vorhin zu erwähnen vergessen habe: mySQL benutze ich unter Windows ja auch nur über den lokalen Server (Apache, was sonst?). PHP hat ein paar PostgreSQL-Funktionen, aber entweder habe ich es nicht gefunden, überlesen oder es gibt keine Hinweise, wie ich das wertvolle Stück auch für meinen Apache unter Windows zugänglich mache. Hast du dazu noch einen Hinweis?

          Du musst berücksichtigen, dass dieses Dienstkonto über bestimmte Berechtigungen verfügen muss

          Ja, das habe ich schon kapiert, und auf einer Linux-Kiste komme ich auch einigermaßen zurecht damit. Nur unter Windows ist es mir neu, aber man möchte ja manchmal auch sowas probieren.
          Na gut, ich versuche mal, ob ich der Standard-Installationsanleitung nicht doch folgen sollte, habe da aber gleich das nächste Problem: würde das bedeuten, daß ich die gesamte Installation nochmal neu machen muß? Es wäre nicht gar so schlimm, da ich noch keinerlei Datenbank mit irgendwelchen enorm wichtigen Daten angelegt habe, außerdem geht es sehr schnell, aber normalerweise sollte man ja auch ein zweites Konto erstellen können.

          Und gleich noch etwas: Mir wäre es am liebsten, wenn ich auf einer Partition, auf die sowohl Windows wie auch Linux Zugriff haben, "Test"-Datenbanken anlegen könnte. Schließlich fragt mich bei Rechnerstart mein Bootmanager, welches der fünf derzeit fest (und nicht nur virtuell) installierten Systeme ich gerne hochfahren möchte. Da wärs doch sinnvoll, wenn ich auf einer "gemeinsamen Partition" eben das ablegen könnte, was mir sowohl unter Windows wie unter Linux und *BSD jeweils denselben Datensatz anzeigt.

          Grüße aus Berlin

          Christoph S.

          --
          Visitenkarte
          ss:| zu:) ls:& fo:) va:) sh:| rl:|
          1. Hallo!

            PHP hat ein paar PostgreSQL-Funktionen, aber entweder habe ich es nicht gefunden, überlesen oder es gibt keine Hinweise, wie ich das wertvolle Stück auch für meinen Apache unter Windows zugänglich mache?

            Ich habe PHP nicht unter Windows am laufen. Ich kann mich nur so weit erinnern, dass die PHP-Windows-Variante die PostgreSQL-Erweiterung (php_pgsql.dll oder so) mitliefert wird.

            André Laugks

            --
            Die Frau geht, die Hilti bleibt!
          2. Hallo

            Es gibt noch etwas, was ich vorhin zu erwähnen vergessen habe: mySQL benutze ich unter Windows ja auch nur über den lokalen Server (Apache, was sonst?). PHP hat ein paar PostgreSQL-Funktionen, aber entweder habe ich es nicht gefunden, überlesen oder es gibt keine Hinweise, wie ich das wertvolle Stück auch für meinen Apache unter Windows zugänglich mache. Hast du dazu noch einen Hinweis?

            Meinst Du nicht, dass es ausreichen sollte, die entsprechende Extension, "php_pgsql.dll" über php.ini und Kopieren in das Extension-Verzeichnis zu aktivieren, siehe auch Abschnitt "Installation" in dem von Dir verlinkten Handbuchabschnitt. Wie ich bereits schrieb, griff ich nur über das pgAdmin-Tool auf PostgreSQL zu, mehr Aufwand habe ich nicht betrieben.

            Und gleich noch etwas: Mir wäre es am liebsten, wenn ich auf einer Partition, auf die sowohl Windows wie auch Linux Zugriff haben, "Test"-Datenbanken anlegen könnte.

            Mit diesem Thema habe ich mich leider nicht befasst. Mein PostgreSQL läuft in einer VM, die bei Bedarf gestartet wird.

            Schließlich fragt mich bei Rechnerstart mein Bootmanager, welches der fünf derzeit fest (und nicht nur virtuell) installierten Systeme ich gerne hochfahren möchte.

            *bg* Ich habe meinen VMWare-Rechner gerade neu aufgesetzt und dabei das Dualboot-System (Windows XP / Fedora) auf Windows XP reduziert. Alle anderen Betriebssysteme laufen in der VM, wobei ich bei Gelegenheit im Archiv nachlesen will, wie Du die Probleme mit der Installation der VMware-Tools gelöst hast.

            Da wärs doch sinnvoll, wenn ich auf einer "gemeinsamen Partition" eben das ablegen könnte, was mir sowohl unter Windows wie unter Linux und *BSD jeweils denselben Datensatz anzeigt.

            Ja, kann ich nachvollziehen. Viel Erfolg.

            Freundliche Grüße

            Vinzenz

            1. hallo Vinzenz,

              Meinst Du nicht, dass es ausreichen sollte, die entsprechende Extension, "php_pgsql.dll" über php.ini und Kopieren in das Extension-Verzeichnis zu aktivieren

              Prinzipiell solte man das meinen. Im Moment meldet mir phpinfo():
              PostgreSQL Support           enabled
              PostgreSQL(libpq) Version    8.0.1
              Multibyte character support  disabled
              SSL support                  disabled
              Active Persistent Links      0
              Active Links                 0

              Was mich verunsichert, ist die Versionsangabe, das müßte eigentlich 8.1.3 sein. Die anderen Einstellungen sind sicher noch bearbeitbar.

              *bg* Ich habe meinen VMWare-Rechner gerade neu aufgesetzt [...] wobei ich bei Gelegenheit im Archiv nachlesen will, wie Du die Probleme mit der Installation der VMware-Tools gelöst hast.

              Mit Windows als Host-System ging das problemlos. Könnte aber ein bißchen von der eingesetzten VMware-Version abhängen. Die Tools stecken in einer kleinen, zum Programmverzeichnis gehörenden ISO und werden in das virtuelle CDROM geladen. Von dort solltest du dir das tar.gz-Archiv in ein eigenes Verzeichnis deiner VM kopieren (bei mir: /home/vm_install) und auspacken. Dann das Installationsscript aufrufen (ist ein Perl-Script). Das fragt dich alles weitere. Wichtig: du mußt die Kernelsourcen unter /usr/src/linux haben, weil die VMware-Tools dorthin verlinken und ein paar Headerdateien haben wollen.
              Die Tools sind für Linux-Gastsysteme wichtig, weil du sonst nur eine VGA mit 16 Farben hast und der X-Server keinen Spaß macht. Wenn du ein Linux ohne X-Server als VM betreiben willst (beispielsweise als Server), brauchst du sie nicht unbedingt.
              Ich bin nicht sicher, ob ich das so irgendwo in einem archivierten Thread schonmal geschrieben habe.

              Da wärs doch sinnvoll, wenn ich auf einer "gemeinsamen Partition" eben das ablegen könnte, was mir sowohl unter Windows wie unter Linux und *BSD jeweils denselben Datensatz anzeigt.
              Ja, kann ich nachvollziehen. Viel Erfolg.

              Wahhhhh! Ich wußte noch nicht, daß du solche Gemeinheiten schreiben kannst.

              Grüße aus Berlin

              Christoph S.

              --
              Visitenkarte
              ss:| zu:) ls:& fo:) va:) sh:| rl:|
              1. Hallo Christoph,

                [...] Dann das Installationsscript aufrufen (ist ein Perl-Script). Das fragt dich alles weitere. Wichtig: du mußt die Kernelsourcen unter /usr/src/linux haben, weil die VMware-Tools dorthin verlinken und ein paar Headerdateien haben wollen.

                soweit bin ich gekommen, doch das Problem ist eher das mit der unpassenden GCC-Version, ich glaube Da hattest Du mal was dazu geschrieben, es handelt sich um Debian Testing.

                Ja, kann ich nachvollziehen. Viel Erfolg.
                Wahhhhh! Ich wußte noch nicht, daß du solche Gemeinheiten schreiben kannst.

                Dein Ironiedetektor ist hypersensibel. Meine Äußerung war ernst gemeint, ohne einen Funken Ironie.

                Du hast Dir doch sicher im Installationshandbuch den Hinweis auf

                initdb -D laufwerk:\pfad\zum\datenverzeichnis

                zum Initialisieren des DB-Servers bei Datenverzeichnis auf einem FAT32-Laufwerk gelesen. Inwieweit Du dieses unter Linux oder BSD verwenden kannst, weiß ich nicht.

                Freundliche Grüße

                Vinzenz

                1. hallo Vinzenz,

                  das Problem ist eher das mit der unpassenden GCC-Version

                  oh. Fehlermeldung bitte genau angeben.

                  ich glaube Da hattest Du mal was dazu geschrieben, es handelt sich um Debian Testing.

                  Möglich. Aber ob das hier im Forum war oder in einem anderen Forum oder Board, weiß ich selber auch nicht. Bei Bedarf mußt du halt nochmal nachfragen.

                  Dein Ironiedetektor ist hypersensibel.

                  Ich bin eben ein Sensibelchen, dafür kann ich nix :-(

                  Du hast Dir doch sicher im Installationshandbuch den Hinweis auf
                      initdb -D laufwerk:\pfad\zum\datenverzeichnis
                  zum Initialisieren des DB-Servers bei Datenverzeichnis auf einem FAT32-Laufwerk gelesen.

                  Natürlich. Ich habs bloß noch nicht realisieren können, was aber gewiß nicht am Handbuch liegt.

                  Inwieweit Du dieses unter Linux oder BSD verwenden kannst, weiß ich nicht.

                  Das geht sehr gut, und das ist auch der Grund, weshalb ich WinXP auf FAT32 laufen lasse. Der Schreibzugriff auf NTFS ist von Linux oder *BSD aus immer noch unzuverlässig, Lesezugriff funktioniert mittlerweile aber ganz gut.

                  Beispielsweise liegen meine Sourcen für /usr/portage/distfiles (Gentoo) auf einer FAT32-Partition, und die entspricht wiederum dem link, den ich in *BSD für /usr/ports/distfiles gesetzt habe. Die Sourcen sind für beide Systeme nahezu identisch, das spart mir auf dem Rechner insgesamt über 1 GB Plattenplatz. Andererseits können meine unterscheidlichen Linux-Systeme alle wiederum auf das identische /home-Verzeichnis zugreifen, und auch das liegt auf FAT32, also habe ich auch von Windows aus Zugriff.
                  Vergleichbares kannst du übrigens auch mit virtuellen Maschinen konstruieren. Wenn du vorhast, auf deinem Windows-Host mehrere virtuelle Maschinen laufen zu lassen, bietet sich das aus Platzgründen durchaus an. Und zusätzlich zu /home kannst du auch eine Partition für /boot erstellen, die mehrere unterschiedliche Linux-Systeme benutzen. Das läßt sich noch auf /var und /tmp erweitern.

                  Du siehst: ein "Multisystem-Rechner" bietet eine Menge Möglichkeiten für "gemeinsame Dateien" und "gemeinsam genutzte Partitionen".

                  Grüße aus Berlin

                  Christoph S.

                  --
                  Visitenkarte
                  ss:| zu:) ls:& fo:) va:) sh:| rl:|
      2. Hallo!

        Ja, der wird als "default" vorgeschlagen. Störrisch, wie ich bin, hab ich den Vorschlag natürlich abgelehnt, weil es so ein Konto auf meiner Kiste schließlich nicht gibt, und habe einen existierenden Kontonamen angegeben. Mit entsprechenden Folgen :-(

        Nicht gut. Der User postgres ist für PostgreSQL das, was der User root für MySQL ist. Unter Lunix/etc. muß das Datenverzeichnis sogar postgres gehören.

        André Laugks

        --
        Die Frau geht, die Hilti bleibt!
        1. hallo André,

          Unter Lunix/etc. muß das Datenverzeichnis sogar postgres gehören.

          Das tut es bei mir auch ... Aber ich dachte, dieses dumme Windows könnte mit einem Linux-Benutzernamen eh nix anfangen. Naja, habe ich eben etwas zu scharf gedacht ;-)

          Grüße aus Berlin

          Christoph S.

          --
          Visitenkarte
          ss:| zu:) ls:& fo:) va:) sh:| rl:|
        2. Hallo André,

          Nicht gut. Der User postgres ist für PostgreSQL das, was der User root für MySQL ist. Unter Lunix/etc. muß das Datenverzeichnis sogar postgres gehören.

          die Rechtevergabe sieht unter Windows ähnlich aus.

          Freundliche Grüße

          Vinzenz