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
。是否有任何自动解决方案?
#1 楼
关于密码提示,您有四个选择:设置PGPASSWORD环境变量。有关详细信息,请参见手册:http://www.postgresql.org/docs/current/static/libpq-envars.html
使用.pgpass文件存储密码。有关详细信息,请参见手册:http://www.postgresql.org/docs/current/static/libpq-pgpass.html
对该特定用户使用“信任身份验证”:http:// www .postgresql.org / docs / current / static / auth-methods.html#AUTH-TRUST
使用包含所有内容的连接URI:http://www.postgresql.org/docs/current/ static / libpq-connect.html#AEN42532
#2 楼
一个带有PGPASSWORD
的简单示例将类似于:PGPASSWORD=YOUR_PASSRORD psql -h YOUR_PG_HOST -U YOUR_USER_NAME
希望对您有所帮助。
评论
嗨,Ian_H,谢谢您的评论,我都同意您的观点。接受的答案非常全面,确实解决了我的问题。我之所以回答这个旧帖子,是因为它对我来说仍然不那么直截了当,因为我相信其他人可能会有同样的感觉。
– pdm
17-10-19在20:23
这绝对是接受的答案的一个很好的补充-有益的提醒是,我们不需要永久设置ENV变量。
–kevlarr
19年5月3日在14:39
请注意,这仍然会将您的密码暴露给命令外壳历史记录。
– Stefan Haberl
1月30日7:44
#3 楼
根据您的帐户权限,未指定数据库的示例可能会失败,因为将根据您连接到的数据库检查用户权限。最好也明确指定数据库。 # this can fail.
PGPASSWORD=YOUR_PASSRORD psql -h YOUR_PG_HOST -U YOUR_USER_NAME
# this is more likely to work, assuming given account has permissions to that database.
PGPASSWORD=YOUR_PASSRORD psql -h YOUR_PG_HOST -U YOUR_USER_NAME -d YOUR_DATABASE
#4 楼
在这个线程中非常有用的答案。我只是为ubuntu 18.04添加了此代码:sudo PGPASSWORD=yourpasswordHere -u postgres psql
这将带您进入postgres,而无需输入密码提示,而无需设置任何环境变量。这不是永久设置。
评论
不要这样做:密码将在ps -ef的输出中可见。
–科林·哈特(Colin't Hart)
19-10-14在13:09
#5 楼
在Windows中,您可以将其设置为系统范围:SETx PGPASSWORD YourPassword /M
出于安全考虑,如果您不希望它在系统范围内,则可以在一行中登录:
set PGPASSWORD=YourPassword&& psql -d database -U user
评论
从PostgreSQL 9.1开始,本地连接也有对等身份验证方法。当前仅适用于Linux,BSD,OS X或Solaris(不适用于Windows)。
–欧文·布兰德斯特
2012年3月11日下午2:00
关于.pgpass选项的注释,您仍然必须在psql命令中指定用户名,数据库和主机名(如果您通常会这样做)
–拉斐尔
17年2月10日在18:41
关于3,您需要编辑方法。其说明在这里:gist.github.com/p1nox/4953113
–FuzzyAmi
19年4月17日在9:33
轻松使用export PGPASSWORD =“ your_pw”转到版本1
–gies0r
19年8月13日在20:34
@ gies0r出于安全考虑,我永远不会导出密码
– Stefan Haberl
1月30日7:43