我想执行一个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。我该如何解决这个问题?
答案 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';