在没有提示的情况下从python-fabric重置mysql root密码

时间:2014-05-26 06:05:02

标签: python mysql linux centos fabric

我试图通过Python-fabric自动部署应用程序。安装必须完成,无需任何人为干预。

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

安装mysql
$yum install mysql-server

然后使用NULL密码安装mysql。

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

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

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

现在,我想实现"完整"自动化,我想要这个"按下输入"自动。我怎样才能在python-fabric中实现这个目标?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

您可以在password env中设置环境变量dict&#34;&#34; 如果密码为no则应该有效密码)或使用fab选项调用-I <pwd>

我通常使用后一种选择,因为它的代码不可知。

根据OP的评论进行编辑:

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

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

我非常确定sudo是此处的关键,基于提供的信息,但可能设置了某些参数。见http://docs.fabfile.org/en/latest/api/core/operations.html#fabric.operations.sudo

编辑3以回应添加OP后续评论

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