2013-01-23 4 views
9

Ho un sito dev locale sulla mia macchina con server Apache e database PostgreSQL 9.1. Mentre sto usando Windows, ho anche installato Cygwin. Voglio accedere al database e fare alcune query tramite Cygwin in modo insuperabile di pgAdmin III, ma mi dice che il comando psql non è stato trovato. Come dovrei impostare il comando psql in cygwin?come impostare il comando psql in cygwin?

+0

Cygwin non è più "ufficialmente" è supportato da postgres (vedi il manuale: "Cygwin non è raccomandato per l'esecuzione di un server di produzione, e dovrebbe essere utilizzato solo per esecuzione su versioni precedenti di Windows in cui il nativo build non funziona, come ad esempio Windows 98. ") Esiste un motivo specifico per cui non si desidera utilizzare pgAdmin o il file nativo di Windows psql fornito? –

+0

@RobertH In realtà nessuna ragione specifica, penso solo che sarebbe conveniente fare tutte le cose in Cygwin invece di tenere un altro programma pgAdmin vicino ad esso.A proposito, qual è il windows psql nativo che hai menzionato? – chaonextdoor

+0

@RobertH Un'altra cosa, in realtà posso accedere al database del nostro sito di produzione tramite cygwin usando psql. Ma visto che sono Windows, penso che forse ho bisogno di qualche cosa di installazione extra per accedere al mio database locale. – chaonextdoor

risposta

-1

Se ho compreso correttamente la tua domanda, stai utilizzando cygwin perché vuoi eseguire query su PostgreSQL tramite bash e psql su Windows, giusto?

Cygwin può eseguire i binari di Windows da bash, quindi installare i build nativi di Windows e assicurarsi che psql.exe sia nel PATH Dovresti essere in grado di copiare l'eseguibile se necessario.

Non è necessario installare una versione Cygwin nativa di PostgreSQL. Basta usare lo strumento psql esistente e accertarsi di poter accedere a psql.exe nativo di Windows.

+1

Windows psql utilizza le funzioni della console di Windows; Cygwin funziona al meglio in un terminale come Console2, che non supporta l'API della console di Windows. Quindi psql non funziona affatto con Cygwin. Ciò che è necessario è una build Cygwin di strumenti client come psql. –

10

La migliore combinazione per Cygwin su Windows, ho trovato, è la normale installazione di Windows Postgres combinata con Cygwin psql.

Cygwin psql (e altri strumenti da riga di comando) possono essere compilati facilmente dalla fonte. Ecco i passaggi per 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 

Questo crea un binario psql.exe che funziona bene con Cygwin. Tuttavia, per impostazione predefinita, tenta di connettersi all'istanza locale utilizzando un socket Unix anziché TCP. Così utilizzare -h per specificare il nome host TCP e la forza, per esempio:

$ ./psql -h localhost -U postgres 

spostare questo psql.exe per un posto sul vostro percorso (ad esempio ~/bin) ed eventualmente avvolgere in uno script per aggiungere '-h localhost 'per comodità quando non sono forniti altri argomenti.

La fonte potrebbe essere modificato per modificare il valore predefinito, ma che richiede lavoro effettivo;)

9

A partire da oggi, è sufficiente installare postgresql-client pacchetto in Cygwin:

  • Run il tuo cygwin setup.exe file (questo può essere eseguito più volte a aggiungere più pacchetti).
  • Tipo PostgreSQL nella casella di ricerca, selezionare postgresql-client e premere "Avanti" per installare.

enter image description here

Ora è possibile aprire terminale Cygwin e digitare psql a correre!

enter image description here