我的saltstack mysql安装有什么问题?

我的saltstack mysql安装有什么问题?,mysql,salt-stack,Mysql,Salt Stack,我是saltstack新手,也是mysql新手…:-/试图在Ubuntu 14上安装我的sql。我得到以下错误 我使用以下sls文件 mysql_package: pkg.installed: - name: mysql-server mysql_conf: file.managed: - name: /etc/my.cnf - source: salt://mysql/files/my.cnf - user: root - group: ro

我是saltstack新手,也是mysql新手…:-/试图在Ubuntu 14上安装我的sql。我得到以下错误

我使用以下sls文件

mysql_package:
  pkg.installed:
    - name: mysql-server

mysql_conf:
  file.managed:
    - name: /etc/my.cnf
    - source: salt://mysql/files/my.cnf
    - user: root
    - group: root
    - mode: 0644
    - require:
      - pkg: mysql_package

mysql_service:
  service:
    - name: mysqld
    - running
    - enable: True
    - require:
      - pkg: mysql_conf
    - watch:
      - pkg: mysql_conf

# required packages start
server_pkgs:
  pkg:
    - installed
    - pkgs:
      - python-dev
    - refresh: True

mysql_python_pkgs:
  pkg.installed:
    - pkgs:
      - libmysqlclient-dev
      - mysql-client
      - python-mysqldb
    - require:
      - pkg: server_pkgs

python-pip:
  pkg:
    - installed
    - refresh: False

mysql:
  pip.installed:
    - require:
      - pkg: python-pip
      - pkg: mysql_python_pkg
# required package end

stg_databases:
  mysql_database.present:
    - name: stagingdb
    - require:
      - pkg: mysql
      - service: mysql_service

first_db_user:
  mysql_user.present:
    - name: stg-admin
    - password: "pass4admin"
    - host: '%'
    - connection_charset: utf8
    - saltenv:
      - LC_ALL: "en_US.utf8"
    - require:
      - mysql_database: stg_databases


create_first_table:
  mysql_query.run:
    - database: stagingdb
    - query: "create table first_table(id INT NOT NULL AUTO_INCREMENT, name VARCHAR(100) NOT NULL, PRIMARY KEY ( id ));"
    - output:   "/tmp/create_first_table.txt"
    - require:
      - mysql_database: stg_databases


first_table_grants:
  mysql_grants.present:
    - grant: all privileges
    - database: stagingdb.*
    - user: stg-admin
    - host: '%'
    - require:
      - mysql_user: first_db_user
并使用以下conf文件

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
遇到以下链接,这不是我想做的


猜测my.cnf中的用户定义与sls文件中的用户定义之间存在关系,但我没有得到正确答案?

运行此状态时,哪里有错误

此外,如果您运行:

salt-call -ldebug state.sls <state file>  
salt调用-ldebug state.sls

这将为您提供大量有用的信息,了解到底是什么盐在运行。根用户仍然可用吗?您可以登录并查看该用户是否真的被创建了吗

这是明显的Mysql授权问题,您不需要调试。这意味着您在授予用户权限时犯了一些错误。只需查看文档:

mysql_user.present不授予用户权限。您需要mysql\u grants.present与mysql\u user.present一起使用。令人困惑的是:mysql_grants.present没有设置密码;mysql_user.present设置密码,但不授予DB权限

first_db_user:
  mysql_user.present:
    - name: stg-admin
    - password: "pass4admin"
    - host: '%'
    - connection_charset: utf8
    - saltenv:
      - LC_ALL: "en_US.utf8"
    - require:
      - mysql_database: stg_databases

grant_my_first_db_user:
  mysql_grants.present:
    - grant: select,insert,update
    - database: stagingdb
    - user: stg-admin
    - host: localhost
saltstack mysql公式证实了这一点