Невозможно изменить пароль для учетной записи root.

mysql ansible

2439 просмотра

2 ответа

2759 Репутация автора

У меня следующая ошибка:

{"failed": true, "invocation": {"module_args": 
 {"append_privs": false, "check_implicit_admin": true, "config_file": "/root/.my.cnf", "connect_timeout": 30, "encrypted": false, "host": "rothko", "host_all": false, "login_host": "localhost", "login_password": "", "login_port": 3306, "login_unix_socket": null, "login_user": "root", "name": "root", "password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", "priv": "*.*:ALL,GRANT", "sql_log_bin": true, "ssl_ca": null, "ssl_cert": null, "ssl_key": null, "state": "present", "update_password": "always", "user": "root"}, "module_name": "mysql_user"}, 
  "item": "rothko", 
   "msg": "unable to connect to database, 
    check login_user and login_password are correct or /root/.my.cnf has the credentials. 
    Exception message: (1045, \"Access denied for user 'root'@'localhost' (using password: NO)\")"}

Это мои инструкции по игре и то, что я пробовал:

#    - name: Create .my.cnf file with root password credentials
#      become: yes
#      template: src=".my.cnf.j2" dest="/root/.my.cnf" owner=root group=root mode=0600
#    - name: Restart mysql
#      service: name=mysqld state=restarted
#    - name: Change root user password on first run
#      mysql_user:
#        name=root
#        host=localhost
#        password={{ mysql_root_password }}
#        priv=*.*:ALL,GRANT
    - name: update mysql root password for all root accounts
      become: yes
      mysql_user:
        login_user=root
        login_password=''
        name=root
        host="{{ item }}"
        password="{{ mysql_root_password }}"
        check_implicit_admin=yes
        priv="*.*:ALL,GRANT"
      with_items:
        - "{{ ansible_hostname }}"
        - 127.0.0.1
        - ::1
        - localhost
      ignore_errors: true

Это хорошо известная проблема, и я нашел несколько вопросов, которые относятся к ней, но для меня не было решения:

Автор: Joze Источник Размещён: 18.07.2016 09:35

Ответы (2)


2 плюса

413 Репутация автора

Решение

Немного больше информации здесь: Изменить пароль root MySQL на Centos7

Я пытаюсь сделать некоторые вещи

    - name: Stop MySQL
      service: name=mysqld state=stopped
    - name: set environment variables
      shell: systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
    - name: Start MySQL
      service: name=mysqld state=started
    - name: sql query
      command:  mysql -u root --execute="UPDATE mysql.user SET authentication_string = PASSWORD('toto') WHERE User = 'root' AND Host = 'localhost';"
    - name: sql query flush
      command:  mysql -u root --execute="FLUSH PRIVILEGES"
    - name: Stop MySQL
      service: name=mysqld state=stopped
    - name: unset environment variables
      shell: systemctl unset-environment MYSQLD_OPTS
    - name: Start MySQL
      service: name=mysqld state=started

Надеюсь, это поможет

Автор: glmrenard Размещён: 18.07.2016 09:44

0 плюса

21747 Репутация автора

Полный кредит @glmrenard; Вот версия, которую я адаптировал для Percona server 5.7 в Ubuntu 16.04:

---
#Reset MySQL root password
- name: Stop MySQL
  systemd:
    name: mysql
    state: stopped

- name: set environment variables
  shell: systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"

- name: Start MySQL
  systemd:
    name: mysql
    state: started

- name: Reset root PW
  command: mysql -u root --execute="UPDATE mysql.user SET authentication_string = PASSWORD('{{ mysql_rootpw }}') WHERE User = 'root' AND (Host = 'localhost' OR Host = '127.0.0.1');"

- name: Flush MySQL privileges
  command: mysql -u root --execute="FLUSH PRIVILEGES"

- name: Stop MySQL
  systemd:
    name: mysql
    state: stopped

- name: Unset environment variables
  shell: systemctl unset-environment MYSQLD_OPTS

- name: Start MySQL
  systemd:
    name: mysql
    state: started
Автор: Synchro Размещён: 24.01.2018 01:54
Вопросы из категории :
32x32