【问题标题】:Generate random password for postgresql in bash在 bash 中为 postgresql 生成随机密码
【发布时间】:2014-03-13 13:01:26
【问题描述】:

我正在尝试安装 postgresql 并在部署时为其生成一个随机密码,仅用于测试。像这样的:

$DBPASS=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
sudo -u postgres -H createuser --no-createrole --no-superuser --no-createdb $NAME
sudo -u postgres -H createdb -O $PROJECT $PROJECT
sudo -u postgres -H psql -c "alter user $PROJECT with password '$DBPASS'"

我得到的错误是这样的:

=b3wDxlSbUymho0CmOZ4TgPylLCanKdgJ: 找不到命令 /usr/lib/postgresql/9.1/bin/createdb: 选项需要一个参数 -- 'O' 尝试“createdb --help”获取更多信息 信息。
错误:“使用密码”处或附近的语法错误
第 1 行:使用密码 '' 更改用户

谁能解释一下为什么会这样?

【问题讨论】:

    标签: linux bash postgresql shell debian


    【解决方案1】:

    您的第一行需要更改(变量分配不应有美元符号):

    DBPASS=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
    

    该错误还表明 $PROJECT 未设置 - 如果在第一行后添加 echo "$PROJECT - $DBPASS" 会得到什么?

    【讨论】:

    • 谢谢。第二个错误是因为我没有设置 $project
    猜你喜欢
    • 2014-12-27
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 2011-08-31
    • 1970-01-01
    • 2012-11-06
    相关资源
    最近更新 更多