Я написал скрипт для 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
запрашивает пароль каждый раз при запуске. Есть также два ограничения:
Я не могу создать пользователя в базе данных без пароля.
Поскольку
REINDEX
блокирует таблицы, я должен использоватьsleep <num>
между нимиREINDEX
.
Есть ли автоматическое решение?
postgresql
index
psql
Маджид Азими
источник
источник
peer
метод аутентификации для локальных соединений. В настоящее время только для Linux, BSD, OS X или Solaris (не Windows)..pgpass
опции, вы должны указать имя пользователя, базы данных, и имя хоста (если бы уже нормально) вpsql
командеexport PGPASSWORD="your_pw"
чтобы перейти к версии 1Простой пример с
PGPASSWORD
будет что-то вроде:Надеюсь, это поможет.
источник
В зависимости от разрешений вашей учетной записи в примере без указания базы данных может произойти сбой, поскольку разрешения пользователей проверяются по базе данных, к которой вы подключаетесь. Лучше явно указать базу данных тоже.
источник
Очень полезные ответы в этой теме. Я просто добавляю это для Ubuntu 18.04:
Это приведет вас в postgres без запроса пароля, без необходимости устанавливать какие-либо переменные окружения. Это не постоянная настройка.
источник