Eu escrevi um script para REINDEX
índices em um banco de dados. Aqui está um deles:
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
O problema é que não consigo executar este script no modo autônomo. psql
está solicitando a senha toda vez que é executado. Há também duas limitações:
Não consigo criar um usuário no banco de dados sem senha.
Porque
REINDEX
bloqueia tabelas, devo usarsleep <num>
entre cada umaREINDEX
.
Existe alguma solução automática?
postgresql
index
psql
Majid Azimi
fonte
fonte
peer
método de autenticação para conexões locais. Atualmente, apenas para Linux, BSD, OS X ou Solaris (não Windows)..pgpass
opção, você ainda tem que especificar nome de usuário, banco de dados e o nome do host (se você teria normalmente) nopsql
comandoexport PGPASSWORD="your_pw"
para ir versão 1Um exemplo simples com
PGPASSWORD
será algo como:Espero que ajude.
fonte
Dependendo das permissões da sua conta, o exemplo sem especificar o banco de dados pode falhar, porque as permissões do usuário são verificadas no banco de dados ao qual você se conecta. É melhor especificar explicitamente o banco de dados também.
fonte
Respostas muito úteis neste tópico. Estou apenas adicionando isso para o ubuntu 18.04:
Isso o levará ao postgres sem o prompt de senha, sem precisar definir nenhuma variável de ambiente. Esta não é uma configuração permanente.
fonte