Как использовать psql без подсказки пароля?

Я написал скрипт для индексов REINDEX в базе данных. Вот один из них:

echo -e "\nreindex for unq_vbvdata_vehicle started at: `date "+%F %T"`" >> ${LOG_FILE}
psql -U ${USERNAME} -h ${HOSTNAME} -d ${DBNAME} -c "REINDEX INDEX scm_main.unq_vbvdata_vehicle;"
if [[ ${?} -eq 0 ]]; then
    echo "reindex for unq_vbvdata_vehicle finished at: `date "+%F %T"`" >> ${LOG_FILE}
else
    echo "reindex for unq_vbvdata_vehicle failed" >> ${LOG_FILE}
    exit 1
fi

Проблема заключается в том, что я не могу запустить этот скрипт в автономном режиме. psql запрашивает пароль каждый раз, когда он запускается. Существуют также два ограничения:

  1. Я не могу создать пользователя в базе данных без пароля.

  2. Поскольку REINDEX блокирует таблицы, я должен использовать sleep <num> между каждым REINDEX.

Есть ли автоматическое решение?

53 голоса | спросил Majid Azimi 10 MarpmSat, 10 Mar 2012 12:48:46 +04002012-03-10T12:48:46+04:0012 2012, 12:48:46

2 ответа


79

У вас есть четыре варианта запроса пароля:

  1. установить переменную среды PGPASSWORD. Подробнее см. В руководстве:
    http://www.postgresql.org/docs/current /static/libpq-envars.html
  2. используйте файл .pgpass для хранения пароля. Подробнее см. В руководстве:
    http://www.postgresql.org/docs/current /static/libpq-pgpass.html
  3. используйте «аутентификацию доверия» для этого конкретного пользователя:
    http: //www.postgresql.org/docs/current/static/auth-methods.html#AUTH-TRUST
  4. используйте URI соединения, который содержит все:
    http: //www. postgresql.org/docs/current/static/libpq-connect.html#AEN42532
ответил a_horse_with_no_name 10 MarpmSat, 10 Mar 2012 12:52:30 +04002012-03-10T12:52:30+04:0012 2012, 12:52:30
11

Простым примером с PGPASSWORD будет что-то вроде:

PGPASSWORD=YOUR_PASSRORD psql -h YOUR_PG_HOST -U YOUR_USER_NAME

Надеюсь, что это поможет.

ответил Eric 19 +03002017-10-19T03:27:16+03:00312017bEurope/MoscowThu, 19 Oct 2017 03:27:16 +0300 2017, 03:27:16

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132