【问题标题】:Resetting mysql root password from python-fabric without prompt在没有提示的情况下从 python-fabric 重置 mysql root 密码
【发布时间】:2014-07-14 20:19:10
【问题描述】:

我正在尝试通过 Python-fabric 自动部署应用程序。安装必须在没有任何人为干预的情况下完成。

在 CentOS 6.4 服务器中,如果我通过安装 mysql

$yum install mysql-server

然后mysql是用NULL密码安装的。

现在的问题是当我通过发出以下命令从fabric 重置mysql root 密码时:

run("mysqladmin -u %s -p password %s " % ('root','khd5u8bWN'))

它提示输入密码(为 NULL),我必须按回车键才能继续。

现在我想实现“完全”自动化,我希望这个“按回车”自动。我如何在 python-fabric 中实现这一点?

【问题讨论】:

    标签: python mysql linux centos fabric


    【解决方案1】:

    您可以在env dict 中设置环境变量password(如果密码不是密码,"" 应该可以工作)或使用-I <pwd> 调用fab选项。

    我通常使用后一个选项,因为它与代码无关。

    根据 OP 的评论进行编辑:

    尝试从使用run 切换到sudo 来运行命令(同时仍使用上述方法之一)。

    编辑 2 以回应 OP 的后续评论:

    根据提供的信息,我很确定 sudo 是这里的关键,但可能设置了某些参数。见http://docs.fabfile.org/en/latest/api/core/operations.html#fabric.operations.sudo

    编辑 3 以响应 add'l OP 后续评论:

    Re:这是mysql root 密码而不是操作系统密码,这可能会提供一些思考:install mysql on ubuntu without password prompt

    【讨论】:

    • 我调用了fab -I'' -H host command,但是在重置mysql root密码的时候还是提示输入密码
    • 已编辑的答案带响应。
    • 仍然提示输入密码:(
    • 也许您需要在对sudo 的调用中指定user 参数?
    • 密码提示不是linux用户密码。它的mysql root密码。不确定它是否会在这里工作。 ssh 连接是“基于密钥的”无密码登录。所以没有提示linux用户密码。
    【解决方案2】:

    当 mysql 密码为空时,您可以通过省略 -p 选项登录到该帐户。因此,将您的运行命令更改为:

    run("mysqladmin -u %s password %s " % ('root','khd5u8bWN'))

    【讨论】:

      猜你喜欢
      • 2018-07-28
      • 2016-11-16
      • 1970-01-01
      • 2011-12-06
      • 1970-01-01
      • 2016-01-07
      • 2016-12-01
      • 2023-02-04
      • 2012-03-06
      相关资源
      最近更新 更多