2013-01-23 40 views
9

Tôi có một trang web địa phương trên máy tính của tôi với máy chủ Apache và cơ sở dữ liệu PostgreSQL 9.1. Khi tôi đang sử dụng Windows, tôi cũng đã cài đặt Cygwin. Tôi muốn truy cập vào cơ sở dữ liệu và thực hiện một số truy vấn thông qua Cygwin insead của pgAdmin III, nhưng nó cho tôi biết rằng lệnh psql không tìm thấy. Làm thế nào tôi nên thiết lập lệnh psql trong Cygwin?cách thiết lập lệnh psql trong Cygwin?

+0

Cygwin không còn là "chính thức" được hỗ trợ bởi postgres (xem sổ tay: "Cygwin không được khuyến khích cho chạy một máy chủ sản xuất, và nó chỉ nên được sử dụng để chạy trên các phiên bản cũ của Windows, nơi mẹ đẻ xây dựng không hoạt động, chẳng hạn như Windows 98. ") Có một lý do cụ thể bạn không muốn sử dụng pgAdmin, hoặc các cửa sổ bản địa psql cung cấp? –

+0

@RobertH Trên thực tế không có lý do cụ thể, tôi chỉ nghĩ rằng nó sẽ là thuận tiện để làm tất cả những điều trong Cygwin thay vì giữ một chương trình pgAdmin bên cạnh nó.By the way, các cửa sổ bản địa psql bạn đề cập là gì? – chaonextdoor

+0

@RobertH Một điều nữa, thực sự tôi có thể truy cập vào cơ sở dữ liệu của trang web sản xuất của chúng tôi thông qua Cygwin bằng cách sử dụng psql. Nhưng như tôi là cửa sổ, tôi nghĩ rằng có lẽ tôi cần một số điều thiết lập thêm để truy cập vào cơ sở dữ liệu địa phương của tôi. – chaonextdoor

Trả lời

-1

Nếu tôi hiểu câu hỏi của bạn một cách chính xác bạn đang chạy Cygwin vì bạn muốn chạy truy vấn đối với PostgreSQL thông qua bash và psql trên Windows, phải không?

Cygwin có thể chạy Windows nhị phân từ bash, vì vậy hãy cài đặt bản dựng Windows gốc và đảm bảo psql.exe nằm trong PATH Bạn có thể sao chép tệp thực thi nếu cần.

Không cần phải cài đặt bản dựng Cygwin gốc của PostgreSQL. Chỉ cần sử dụng công cụ psql hiện có, và chắc chắn rằng bạn có thể truy cập psql.exe có nguồn gốc Windows.

+1

Windows psql sử dụng các chức năng của Windows console; Cygwin chạy tốt nhất trong một thiết bị đầu cuối như Console2, không hỗ trợ API giao diện điều khiển Windows. Vì vậy, psql không hoạt động tốt với Cygwin cả. Điều cần thiết là một công cụ xây dựng Cygwin của các công cụ máy khách như psql. –

10

Kết hợp tốt nhất cho Cygwin trên Windows, tôi đã tìm thấy, là cài đặt Windows Postgres bình thường kết hợp với Cygwin psql.

Cygwin psql (và các công cụ dòng lệnh khác) có thể được biên dịch từ nguồn khá dễ dàng. Dưới đây là các bước cho 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 

Điều này tạo ra một nhị phân psql.exe hoạt động tốt với Cygwin. Tuy nhiên, theo mặc định, nó cố gắng kết nối với cá thể cục bộ bằng cách sử dụng một ổ cắm Unix thay vì TCP. Vì vậy, sử dụng -h để chỉ định tên máy và lực lượng TCP, ví dụ:

$ ./psql -h localhost -U postgres 

Move psql.exe này để một nơi nào đó trên con đường của bạn (ví dụ ~/bin) và có thể quấn trong một kịch bản để thêm '-h localhost 'để thuận tiện khi không có đối số nào khác được cung cấp.

Nguồn có thể được sửa đổi để thay đổi mặc định, nhưng điều đó có việc thực tế;)

9

Tính đến hôm nay, bạn chỉ cần phải cài đặt postgresql-client gói trong Cygwin:

  • Run tệp cygwin setup.exe của bạn (điều này có thể chạy nhiều lần để thêm các gói khác).
  • Nhập postgresql vào hộp tìm kiếm, chọn postgresql-client và nhấn "tiếp theo" để cài đặt.

enter image description here

Bây giờ bạn có thể mở Cygwin terminal và gõ psql để chạy!

enter image description here

Các vấn đề liên quan