Ich habe ein Skript für REINDEX
Indizes in einer Datenbank geschrieben. Hier ist einer von ihnen:
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
Das Problem ist, dass ich dieses Skript nicht im Standalone-Modus ausführen kann. psql
fragt bei jeder Ausführung nach dem Kennwort. Es gibt auch zwei Einschränkungen:
Ich kann keinen Benutzer in der Datenbank ohne Passwort erstellen.
Da
REINDEX
sperrt Tabellen, sollte ichsleep <num>
zwischen jedem verwendenREINDEX
.
Gibt es eine automatische Lösung?
postgresql
index
psql
Majid Azimi
quelle
quelle
peer
Authentifizierungsmethode für lokale Verbindungen. Derzeit nur für Linux, BSD, OS X oder Solaris (nicht Windows)..pgpass
Option: Sie müssen noch den Benutzernamen, die Datenbank und den Hostnamen (wenn Sie dies normalerweisepsql
export PGPASSWORD="your_pw"
, um Version 1 zu gehenEin einfaches Beispiel mit
PGPASSWORD
wird etwa sein:Ich hoffe es hilft.
quelle
Abhängig von Ihren Kontoberechtigungen schlägt das Beispiel ohne Angabe der Datenbank möglicherweise fehl, da die Benutzerberechtigungen mit der Datenbank verglichen werden, mit der Sie eine Verbindung herstellen. Es ist besser, auch die Datenbank explizit anzugeben.
quelle
Sehr hilfreiche Antworten in diesem Thread. Ich füge dies nur für Ubuntu 18.04 hinzu:
So gelangen Sie ohne Passwortabfrage in die Postgres, ohne Umgebungsvariablen setzen zu müssen. Dies ist keine dauerhafte Einstellung.
quelle