我有以下状态公式:
crm01.dbperms2:
mysql_grant.present:
- grant: all privileges
- database: '*.*'
- user: tester2
- host: 10.1.0.2当我执行state.sls时,我得到以下错误:
ID: crm01.dbperms2
Function: mysql_grants.present
Result: False
Comment: Failed to execute: "GRANT all privileges ON *.* TO tester2@10.1.0.2" (MySQL Error 1045: Access denied for user 'debian-sys-maint'@'localhost' (using password: YES))
Changes: 但是,如果我手动添加授权,之后执行state.sls时不会出现错误:
ID: crm01.dbperms1
Function: mysql_grants.present
Result: True
Comment: Grant all privileges on *.* to bup@10.1.0.2 is already present
Changes: 我不知道我做错了什么。有没有人知道如何在mysql中通过salt-stack正确地授予用户权限?
提亚
发布于 2015-02-19 23:33:53
我遇到了类似的问题,并发现我需要添加连接凭据-在本例中,我使用了root登录。我也看到过一些实例,人们指定了connection_host,但我似乎并不需要它。
crm01.dbperms2:
mysql_grant.present:
- grant: all privileges
- database: '*.*'
- user: tester2
- host: 10.1.0.2
- connection_user: root
- connection_pass: {{pillar.root_db_password}}发布于 2015-07-28 19:08:15
我知道这是一个古老的问题,但这是我是如何做到的。
我有一个添加的.my.cnf文件,其中包含mysql用户和密码。通过将文件放在主目录中,可以为任何用户执行此操作。
/root/.my.cnf:
file:
- managed
- source: salt://files/mysql/root-my.cnf
- user: root
- group: root
- mode: 0600
- template: jinja文件的内容如下所示。
[client]
user=root # any user having grant permission
password = {{ pillar['mysql']['server']['root_password'] }} # Password stored in pillar file.在mysql柱文件(任意柱文件)中添加以下行。这告诉minion从哪里读取mysql连接所需的参数,即un、pw、host、port等。
mysql.default_file: /root/.my.cnf现在,您可以使用任何mysql模块,包括需要用户权限的mysql_database, mysql_user, mysql.grant。
https://stackoverflow.com/questions/25048087
复制相似问题