2016-02-14 2 views
2

Я saltstack новичок и MySQL новичок тоже ...: -/пытаюсь установить MySQL на Ubuntu 14. Я получаю следующее сообщение об ошибкеЧто случилось с моей установкой mysql соляной раковины?

enter image description here

Я использую следующий файл СЛС

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 

И используя следующий конф файл

[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 

Наткнулся следующую ссылку MySQL - ERROR 1045 - Access denied, й ats не то, что я хочу сделать ...

Угадайте, существует ли связь между пользователем, указанным в файле my.cnf и в sls, который я не получаю правильно?

ответ

0

Где ошибки при запуске этого состояния?

Кроме того, если вы бежите:

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

Это даст вам много полезной информации о том, что соль точно работает. Доступен ли пользователь root? Можете ли вы войти в систему и посмотреть, действительно ли этот пользователь был создан?

0

Это очевидные проблемы с Mysql GRANT, которые вам не нужно отлаживать. Это означает, что вы допустили ошибку GRANTING пользователя. Просто проверьте документ: https://docs.saltstack.com/en/latest/ref/states/all/salt.states.mysql_user.html

mysql_user.present НЕ предоставляет пользователю. вам нужно mysql_grants.present вместе с mysql_user.present. Запутанная часть: mysql_grants.present не устанавливает пароль; mysql_user.present установить пароль, но не предоставляет права БД.

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 подтверждают это.

https://github.com/saltstack-formulas/mysql-formula/blob/master/mysql/salt-user.sls