Saya menulis skrip ke REINDEX
indeks dalam database. Ini salah satunya:
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
Masalahnya adalah saya tidak bisa menjalankan skrip ini dalam mode mandiri. psql
meminta kata sandi setiap kali dijalankan. Ada juga dua batasan:
Saya tidak dapat membuat pengguna di basis data tanpa kata sandi.
Karena
REINDEX
mengunci tabel, saya harus menggunakansleep <num>
masing-masingREINDEX
.
Apakah ada solusi otomatis?
postgresql
index
psql
Majid Azimi
sumber
sumber
peer
metode otentikasi untuk koneksi lokal. Saat ini hanya untuk Linux, BSD, OS X atau Solaris (bukan Windows)..pgpass
opsi ini, Anda masih harus menentukan nama pengguna, basis data, dan nama host (jika Anda akan biasanya) dalampsql
perintahexport PGPASSWORD="your_pw"
untuk membuka versi 1Contoh sederhana dengan
PGPASSWORD
akan menjadi sesuatu seperti:Semoga ini bisa membantu.
sumber
Bergantung pada izin akun Anda, contoh tanpa menentukan basis data mungkin gagal, karena izin pengguna diperiksa terhadap basis data yang Anda sambungkan. Lebih baik secara eksplisit menentukan basis data juga.
sumber
Jawaban yang sangat membantu di utas ini. Saya hanya menambahkan ini untuk ubuntu 18.04:
Ini akan membawa Anda ke postgres tanpa kata sandi, tanpa harus mengatur variabel lingkungan apa pun. Ini bukan pengaturan permanen.
sumber