Trang chính thức không đề cập đến trường hợp như vậy. Nhưng nhiều người dùng chỉ psql
cần mà không cần cơ sở dữ liệu cục bộ (tôi có trên AWS). Brew không có psql
.
Trang chính thức không đề cập đến trường hợp như vậy. Nhưng nhiều người dùng chỉ psql
cần mà không cần cơ sở dữ liệu cục bộ (tôi có trên AWS). Brew không có psql
.
Câu trả lời:
Bạn cũng có thể sử dụng homebrew để cài đặt libpq.
brew install libpq
Điều này sẽ cung cấp cho bạn psql, pg_dump và một loạt các tiện ích khách khác mà không cần cài đặt Postgres.
Sau đó, bạn thêm thư mục cài đặt vào đường dẫn của mình. Trong trường hợp của tôi, vị trí thư mục là:
/usr/local/Cellar/libpq/10.3/bin
brew link --force libpq
nhưng điều đó sẽ tạo ra một loạt các liên kết tượng trưng khác mà bạn có thể không muốn / cần.
ln -s /usr/local/Cellar/libpq/11.3/bin/psql /usr/local/bin/psql
/ ln -s /usr/local/Cellar/libpq/11.3/bin/pg_dump /usr/local/bin/pg_dump
/ln -s /usr/local/Cellar/libpq/11.3/bin/pg_restore /usr/local/bin/pg_restore
for cmd in psql pg_dump pg_restore; do ln -s ../opt/libpq/bin/$cmd /usr/local/bin/$cmd; done
PATH=/usr/local/opt/libpq/bin:$PATH
để thêm tất cả các lệnh vào đường dẫn của bạn trong một lần sử dụng tên thư mục không thay đổi theo phiên bản libpq
mà bạn cài đặt.
Homebrew chỉ thực sự có công thức postgres và không có bất kỳ công thức cụ thể nào chỉ cài đặt psql
công cụ.
Vì vậy, "cách chính xác" để tải psql
ứng dụng thực sự là cài đặt công thức postgres , và bạn sẽ thấy ở cuối phần "cảnh báo" rằng nó không thực sự chạy cơ sở dữ liệu, nó chỉ đặt các tệp trên hệ thống của bạn. :
$ brew install postgres
==> Downloading https://homebrew.bintray.com/bottles/postgresql-9.6.5.sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring postgresql-9.6.5.sierra.bottle.tar.gz
==> /usr/local/Cellar/postgresql/9.6.5/bin/initdb /usr/local/var/postgres
==> Caveats
<snip>
To have launchd start postgresql now and restart at login:
brew services start postgresql
Or, if you don't want/need a background service you can just run:
pg_ctl -D /usr/local/var/postgres start
==> Summary
🍺 /usr/local/Cellar/postgresql/9.6.5: 3,269 files, 36.7MB
Giờ đây, bạn có thể sử dụng psql
để kết nối với các máy chủ Postgres từ xa và sẽ không chạy một máy chủ cục bộ, mặc dù bạn có thể nếu bạn thực sự muốn.
Để xác minh rằng postgres
daemon cục bộ không chạy, hãy kiểm tra các dịch vụ homebrew đã cài đặt của bạn:
$ brew services list
Name Status User Plist
mysql stopped
postgresql stopped
Nếu bạn chưa cài đặt Dịch vụ Homebrew , chỉ cần
$ brew tap homebrew/services
... và bạn sẽ nhận được chức năng này. Để biết thêm thông tin về Dịch vụ Homebrew , hãy đọc bài đăng blog tuyệt vời này giải thích cách hoạt động của nó .
brew link
bước. Việc buộc liên kết với libpq là cần thiết do khai báo keg_only trong công thức. Với sự phức tạp cụ thể này , tôi cho rằng câu trả lời này là cách "chính xác" để thực hiện những gì câu hỏi yêu cầu. Tôi nhận ra rằng nhiều người dùng vẫn sẽ thích libpq
phương pháp này hơn.
libpq 11.2
MacOS & zsh hoặc bash
dưới đây hoạt động
libpq
brew install libpq
cập nhật PATH
nếu sử dụng zsh:
echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
nếu sử dụng bash:
echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.bash_profile
nếu bạn đang sử dụng bash.
Nếu bạn thực sự không cần postgresql thì bạn thậm chí không cần phải thay đổi đường dẫn để sử dụng thư viện, chỉ cần liên kết libpq
. Các tài liệu cho biết lý do duy nhất không phải là để tránh xung đột với gói PostgreSQL.
brew uninstall postgresql
brew install libpq
brew link --force libpq
Tôi thấy tất cả những điều này thực sự không hài lòng, đặc biệt nếu bạn phải hỗ trợ nhiều phiên bản postgres. Một giải pháp dễ dàng hơn NHIỀU là tải xuống các tệp nhị phân tại đây:
https://www.enterprisedb.com/download-postgresql-binaries
Và chỉ cần chạy phiên bản thực thi psql
phù hợp với cơ sở dữ liệu bạn đang làm việc mà không cần thực hiện thêm bất kỳ bước nào.
thí dụ:
./path/to/specific/version/bin/psql -c '\x' -c 'SELECT * FROM foo;'
Bạn có thể thử brew install postgresql
Nhưng điều này cung cấp một GUI đẹp để quản lý cơ sở dữ liệu của bạn https://postgresapp.com
brew install postgresql
cài đặt psql với cơ sở dữ liệu riêng của mình :(