6

我想为 mysql root 用户设置强密码。但是有一个蛋鸡问题。我有空服务器。我加盐。root 密码为空(安装后默认)。

如果我使用

root: 
  mysql_user.present:
  - name: root
  - password: $ecur3h4x0r
  - host: %

然后我将无法调用任何其他 mysql 状态,因为它们需要密码。但是下次我做 highstate 时这个调用将不起作用,因为 state 尝试使用空密码进行连接。

4

3 回答 3

4

是的,我们将添加一个“default_user”和“default_pass”设置,以便您处理这种情况。它应该在 0.17.0

于 2013-07-12T17:08:36.317 回答
2

以防有人在开始使用 saltstack 管理 mysql 时偶然发现这个问题。

以下是它在当前 salt 版本(salt 2015.5.0 (Lithium))中的工作方式。请注意,mysql_user.present-state 足够聪明,可以在没有密码的情况下尝试它。在随后的运行中,该状态将使用 root 密码进​​行连接,并意识到 root 的密码处于正确状态。

root:
  mysql_user.present:
    - host: localhost
    - password: s3cure_root_password

another_user:
  mysql_user.present:
    - host: localhost
    - password: anoth3r_user_password
    - connection_user: root
    - connection_pass: s3cure_root_password
于 2015-06-24T19:21:47.383 回答
0

我想指出在 ubuntu 18.04 下的 master / minion 版本“2019.2.0”中对我有用的两件事:

  • 一个人将能够第一次设置用户“root”的密码:
   mysql_user.present:
     - name: root
     - host: localhost
     - password: pillar['mysql']['mysqlrootpassword']
     - connection_charset: utf8
     - saltenv:
       - LC_ALL: "en_US.utf8"

之后,无论 root 密码的值如何,该命令都将始终成功。User root@localhost is already present with the desired password

  • MySql 用户仅在您使用或作为 root 用户root时才允许登录sudo
于 2019-05-09T12:16:12.947 回答