繁体   English   中英

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

[英]Resetting mysql root password from python-fabric without prompt

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

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

$yum install mysql-server

然后使用空密码安装mysql。

现在的问题是,当我通过发出以下命令从结构中重置mysql根密码时:

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

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

现在,当我要实现“完全”自动化时,我希望这种“按Enter”会自动进行。 我如何在python-fabric中实现呢?

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

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

您既可以设置环境变量passwordenv dict (“”应该工作,如果密码是没有密码),或者调用fab-I <pwd>选项。

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

根据OP的评论进行编辑:

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

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

基于提供的信息,我很确定sudo是关键,但也许设置了某些参数。 请参阅http://docs.fabfile.org/en/latest/api/core/operations.html#fabric.operations.sudo

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

回复:这是mysql root密码,而不是OS的密码,这可能会引起一些思考: 在没有密码提示的情况下在ubuntu上安装mysql

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM