На офіційній сторінці про такий випадок не згадується. Але багатьом користувачам потрібна лише psql
без локальної бази даних (у мене на AWS). Варення не мають psql
.
На офіційній сторінці про такий випадок не згадується. Але багатьом користувачам потрібна лише psql
без локальної бази даних (у мене на AWS). Варення не мають psql
.
Відповіді:
Ви також можете використовувати homebrew для встановлення libpq.
brew install libpq
Це дасть вам psql, pg_dump та цілу купу інших утиліт клієнта без встановлення Postgres.
Потім ви додаєте каталог встановлення до свого шляху. У моєму випадку розташування каталогу:
/usr/local/Cellar/libpq/10.3/bin
brew link --force libpq
але це створить купу інших символічних посилань, які вам можуть не потрібні / потрібні.
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
щоб додати всі команди до свого шляху за один раз, використовуючи ім’я каталогу, яке не змінюється з версією libpq
встановленої вами.
Homebrew насправді має лише формулу postgres і не має жодної конкретної формули, яка лише встановлює psql
інструмент.
Отже, «правильним способом» отримати psql
програму є насправді встановити формулу postgres , і ви побачите внизу розділу «застереження», що вона насправді не запускає базу даних, вона просто розміщує файли у вашій системі :
$ 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
Тепер ви можете використовувати psql
для підключення до віддалених серверів Postgres, і не буде запускати локальний, хоча ви могли б, якщо б справді хотіли.
Щоб переконатися, що локальний postgres
демон не запущений, перевірте встановлені служби домашньої роботи:
$ brew services list
Name Status User Plist
mysql stopped
postgresql stopped
Якщо у вас не встановлені служби Homebrew , просто
$ brew tap homebrew/services
... і ви отримаєте цю функціональність. Щоб отримати додаткову інформацію про послуги Homebrew , прочитайте цю чудову публікацію в блозі, яка пояснює, як це працює .
brew link
кроку. Примусове посилання за допомогою libpq необхідне через декларацію keg_only у формулі. Враховуючи це конкретне ускладнення , я вважаю, що ця відповідь є "правильним" способом зробити те, що задає питання. Я усвідомлюю, що багато користувачів все ж віддадуть перевагу такому libpq
підходу.
libpq 11.2
MacOS & zsh або bash
нижче працює
libpq
brew install libpq
оновити PATH
якщо використовувати zsh:
echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
якщо використовувати 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
якщо ви використовуєте bash.
Якщо вам справді не потрібен postgresql, то вам навіть не потрібно змінювати свій шлях для використання бібліотеки, просто посилайте libpq
. Документи кажуть, що єдина причина - це уникати конфліктів з пакетом PostgreSQL.
brew uninstall postgresql
brew install libpq
brew link --force libpq
Я знайшов все це насправді незадовільним, особливо якщо вам доводиться підтримувати кілька версій postgres. НАБАГАТО простішим рішенням є завантаження двійкових файлів тут:
https://www.enterprisedb.com/download-postgresql-binaries
І просто запустіть виконувану версію, psql
яка відповідає базі даних, з якою ви працюєте, без зайвих кроків.
приклад:
./path/to/specific/version/bin/psql -c '\x' -c 'SELECT * FROM foo;'
Ви можете спробувати brew install postgresql
Але це забезпечує приємний графічний інтерфейс для управління базами даних https://postgresapp.com
brew install postgresql
встановити psql із самою базою даних :(