在没有提示的情况下从 python-fabric 重置 mysql root 密码
Posted
技术标签:
【中文标题】在没有提示的情况下从 python-fabric 重置 mysql root 密码【英文标题】:Resetting mysql root password from python-fabric without prompt 【发布时间】: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 中实现这一点?
【问题讨论】:
【参考方案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'))
【讨论】:
以上是关于在没有提示的情况下从 python-fabric 重置 mysql root 密码的主要内容,如果未能解决你的问题,请参考以下文章
在没有 libreoffice 的情况下从 word 创建 pdf
在没有 Segue 的情况下从 UITableViewCell 打开视图控制器
如何在没有开发人员帐户的情况下从 .app 文件构建 .ipa 文件?