我仍然对MySQL不会在命令行和日志中混淆密码感到困惑。这是我添加答案的唯一原因,而不仅仅是评论@Gilles答案。
因此,当然,您可以按照@patrix的建议,以管理员身份登录MySQL并为blayo用户设置新密码。
但是,执行此操作的标准方法是使用MySQL的password()函数,该函数将纯文本口令作为参数(严重吗?)。
如果这样做,您将在bash历史记录和MySQL日志中保留MySQL用户密码的纯文本版本,以便以后设法访问那些日志文件的人轻松检索。
拥有一个可以提示输入密码的实用程序,而不将其回显到屏幕或日志中,然后为您提供与MySQL兼容的哈希值,这会更好吗?
因此,只需稍微修改@Gilles的答案,一个使用Python的小外壳脚本怎么样,如下所示。您可以轻松地对此进行修改,以对您的MySQL数据库运行SQL语句以一次设置所有密码。但是即使走得太远,也只需将生成的哈希复制并粘贴到SQL语句中以更新users表:
#!/bin/bash
mysqlpwd=$(/usr/bin/python -c 'from hashlib import sha1; import getpass; print "*" + sha1(sha1(getpass.getpass("New MySQL Password:")).digest()).hexdigest()')
echo $mysqlpwd
blayo
?这绝对比遍历数万亿个可能的字符组合来找到正确的字符要快。