2013-01-23 10 views
9

Ich habe eine lokale dev Seite auf meinem Rechner mit Apache Server und PostgreSQL 9.1 Datenbank. Da ich Windows verwende, habe ich auch Cygwin installiert. Ich möchte auf die Datenbank zugreifen und einige Abfragen über Cygwin Insead von pgAdmin III, aber es sagt mir, dass psql Befehl nicht gefunden. Wie sollte ich den Befehl psql in Cygwin einrichten?Wie wird der Befehl psql in Cygwin eingerichtet?

+0

Cygwin ist nicht mehr „offiziell“ von Postgres unterstützt (siehe Handbuch: „Cygwin ist ein Produktionsserver für den Betrieb, nicht empfohlen und sollte es nur für den Betrieb auf älteren Versionen von Windows verwendet werden, wo die native build funktioniert nicht, wie z. B. Windows 98. ") Gibt es einen bestimmten Grund, warum Sie pgAdmin nicht verwenden möchten oder das native windows psql bereitgestellt wird? –

+0

@RobertH Eigentlich keinen bestimmten Grund, ich denke nur, es wäre bequem, alle Dinge in Cygwin zu tun, anstatt ein anderes Programm pgAdmin daneben zu halten.Übrigens, was ist das native Windows psql, das du erwähnt hast? – chaonextdoor

+0

@RobertH Noch eine Sache, eigentlich kann ich über cygwin mit psql auf die Datenbank unserer Produktionsstätte zugreifen. Aber da ich Windows bin, denke ich, brauche ich vielleicht etwas extra Setup um auf meine lokale Datenbank zuzugreifen. – chaonextdoor

Antwort

-1

Wenn ich Ihre Frage richtig verstehe, dann führen Sie cygwin aus, weil Sie Abfragen über PostgreSQL über bash und psql unter Windows ausführen möchten, oder?

Cygwin kann Windows-Binärdateien von Bash ausführen, installieren Sie also die nativen Windows-Builds und stellen Sie sicher, dass sich psql.exe in der PATH befindet Sie sollten in der Lage sein, die ausführbare Datei bei Bedarf zu kopieren.

Es ist nicht notwendig, einen nativen Cygwin-Build von PostgreSQL zu installieren. Verwenden Sie einfach das vorhandene Tool psql und stellen Sie sicher, dass Sie auf die Windows-native psql.exe zugreifen können.

+1

Windows psql verwendet Windows-Konsolenfunktionen; Cygwin läuft am besten in einem Terminal wie Console2, das die Windows-Konsolen-API nicht unterstützt. Also funktioniert psql überhaupt nicht gut mit Cygwin. Was benötigt wird, ist ein Cygwin-Build von Client-Tools wie psql. –

10

Die beste Kombination für Cygwin unter Windows, habe ich gefunden, ist die normale Windows Postgres Installation in Kombination mit Cygwin psql.

Cygwin psql (und andere Befehlszeilentools) können ziemlich einfach aus der Quelle kompiliert werden. Hier sind die Schritte für 9.2.4:

$ wget http://ftp.postgresql.org/pub/source/v9.2.4/postgresql-9.2.4.tar.bz2 
$ tar xjf postgresql-9.2.4.tar.bz2 
$ cd postgresql-9.2.4/ 
$ ./configure 
$ cd src/bin/psql 
$ make 

Dies erstellt eine psql.exe-Binärdatei, die gut mit Cygwin funktioniert. Es versucht jedoch standardmäßig, eine Verbindung zur lokalen Instanz herzustellen, indem ein Unix-Socket anstelle von TCP verwendet wird. So verwenden -h, um den Hostnamen und die Kraft TCP angeben, zum Beispiel:

$ ./psql -h localhost -U postgres 

Verschieben dieses psql.exe zu irgendwo auf dem Weg (zB ~/bin) und möglicherweise in einem Skript wickeln hinzufügen ‚-h localhost 'für die Bequemlichkeit, wenn keine anderen Argumente geliefert.

Die Quelle modifiziert werden könnte, um die Standardeinstellung zu ändern, aber das braucht eigentliche Arbeit;)

9

Ab heute, die Sie gerade postgresql-client Paket in Cygwin installieren:

  • Run Ihr cygwin setup.exe Datei (dies kann mehrmals ausgeführt werden fügen Sie weitere Pakete hinzu).
  • Typ postgresql in das Suchfeld, wählen Sie postgresql-client und Presse "weiter" zu installieren.

enter image description here

Jetzt können Sie Cygwin-Terminal öffnen und psql zu laufen geben!

enter image description here

Verwandte Themen