如何使用salt状态执行mysql查询

时间:2015-02-11 13:27:36

标签: mysql salt-stack

我想执行一个mysql查询。我想更改mysql的root密码。我怎么能用盐状态做到这一点?我的SLS文件看起来像这样

test:
 mysql_query.run:
    - order: 2
    - database: '*'
    - query: |
       - "FLUSH PRIVILEGES;"
       - "SET PASSWORD FOR root@'localhost' = PASSWORD('root');"
       - "UPDATE mysql.user SET Password=PASSWORD('root') WHERE User='root';"

我认为状态mysql_query.run只执行与数据库相关的查询,所以它需要数据库。因此,当我在sls上面运行时,我得到'数据库测试未找到消息'并且它不会将root的密码更改为root。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

MySQL存储密码的数据库称为mysql。以下状态为我更新了root密码。请注意,我还更新了多行语法。

test:
  mysql_query.run:
    - database: mysql
    - query: |
       FLUSH PRIVILEGES;
       SET PASSWORD FOR root@'localhost' = PASSWORD('root');
       UPDATE mysql.user SET Password=PASSWORD('root') WHERE User='root';