Как взаимодействовать с PostgreSQL с помощью интерфейса командной строки на Mac?

Я отлично использовал pgAdmin с PostgreSQL, но мне хотелось немного попрактиковаться в использовании командной строки. Когда я устанавливал PostgreSQL, я обязательно включил инструменты командной строки. Я скачал его прямо с сайта Postgres — я не использовал Homebrew.

Из терминала я попытался подключиться с помощью psql, но это не сработало. Итак, я попытался проверить, правильно ли я установил путь, как указано здесь: https://dba.stackexchange.com/questions/93369/postgres-installation-on-macosx-problem-with-psql

Я использовал mdfind psql, чтобы найти путь: PATH="/Library/PostgreSQL/13/bin:${PATH}"

Я перезагрузил .zprofile, ввел psql и свой пароль для моего текущего пользователя (я также попробовал пароль PostgreSQL), но получил следующую ошибку:

psql: ошибка: не удалось подключиться к серверу: FATAL: аутентификация пароля не удалась для пользователя меня

Я также попытался изменить пользователей на postgres через: sudo su - postgres и ввел те же пароли, которые я пробовал ранее, но он продолжает говорить «Извините, попробуйте еще раз», а затем выходит после 3 попыток.

pgAdmin4 работает нормально, как обычно. Пароли, которые я ввожу в pgAdmin, такие же, как и в Терминале. Кто-нибудь знает, что я делаю неправильно?

Редактировать: Итак, получается, что мне просто нужно было написать sudo su postgres без -. Затем я ввел свой пароль пользователя, написал psql, ввел пароль, а затем смог взаимодействовать с Postgres с помощью командной строки. Если у вас возникли трудности, как у меня, попробуйте это и установите путь, как я сделал выше.


person IamWarmduscher    schedule 11.10.2020    source источник


Ответы (2)


Удалите установку PostgreSQL. Загрузите https://postgresapp.com/ (или просто нажмите https://github.com)./PostgresApp/PostgresApp/releases/download/v2.4/Postgres-2.4-13.dmg )

Настройте $PATH для использования включенных инструментов командной строки (необязательно):

sudo mkdir -p /etc/paths.d &&
echo /Applications/Postgres.app/Contents/Versions/latest/bin | sudo tee /etc/paths.d/postgresapp

Используйте psql для командной строки в Терминале. (Я использовал Postgres.app на macOS, и он работал очень хорошо.)

Справочный документ: https://www.postgresql.org/docs/13/app-psql.html

person Do Nhu Vy    schedule 11.10.2020

Итак, получается, что мне просто нужно было написать sudo su postgres без -. Затем я ввел свой пароль пользователя, написал psql, ввел пароль, а затем смог взаимодействовать с Postgres с помощью командной строки.

Если у вас возникли трудности, как у меня, попробуйте это и установите путь, как я сделал в своем исходном посте.

person IamWarmduscher    schedule 12.10.2020