Назад | Перейти на главную страницу

Попытка установить MySQL с WSREP API от Ansible

Я пытаюсь установить кластер galera (mysql с wsrep 5.7) на centos 7.7 с недоступным.

Мой файл правил:

  - name: Start the MySQL Daemon (first time)
  service:
    name: mysqld
    enabled: yes
    state: started

- name: Parse the logfile for temporary password
  command: grep 'temporary password' /var/log/mysqld.log
  register: pw_line

- name: Register the password
  set_fact:
    tmp_password: "{{ pw_line.stdout | regex_search(regexp, '\\1') }}"
  vars:
    regexp: ': (.+)$'

- name: Change temporary root password
  shell:
    cmd: mysql -u root --password="{{ tmp_password[0] }}" --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '{{ icinga2_mysql_root_password }}'; flush privileges; "

Это приводит к следующему выводу:

changed: [icinga2-db1.local] => {
    "changed": true,
    "cmd": "mysql -u root --password=\"fJuu)YTIA0<*\" --connect-expired-password -e \"ALTER USER 'root'@'localhost' IDENTIFIED BY 'S0me_P4$.worD'; flush privileges; \"",
    "delta": "0:00:00.021148",
    "end": "2020-02-23 18:23:10.323202",
    "invocation": {
        "module_args": {
            "_raw_params": "mysql -u root --password=\"fJuu)YTIA0<*\" --connect-expired-password -e \"ALTER USER 'root'@'localhost' IDENTIFIED BY 'S0me_P4$.worD'; flush privileges; \"",
            "_uses_shell": true,
            "argv": null,
            "chdir": null,
            "creates": null,
            "executable": null,
            "removes": null,
            "stdin": null,
            "stdin_add_newline": true,
            "strip_empty_ends": true,
            "warn": true
        }
    },
    "rc": 0,
    "start": "2020-02-23 18:23:10.302054",
    "stderr": "mysql: [Warning] Using a password on the command line interface can be insecure.",
    "stderr_lines": [
        "mysql: [Warning] Using a password on the command line interface can be insecure."
    ],
    "stdout": "",
    "stdout_lines": []
}

Кажется, что это нормально, но, к сожалению, я не могу войти после этого. Я получаю сообщение об ошибке:

# mysql -u root -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Если я перезагружаю (переустанавливаю систему) и захожу через mysql в базу данных и выполняю запрос, все работает нормально.

Я уже пробовал много разных способов решения этой моей проблемы (mysql_user, редактирование my.cnf, использование mysqladmin), но безуспешно.

Кто-нибудь может меня просветить?

РЕДАКТИРОВАТЬ: я пробовал следующее в командной строке:

# mysql -u root --password="#Uq.L*gcr0k." -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'S0me_P4$.worD'; flush privileges;"

которые приводят к той же ошибке, что и выше. Но это:

# mysql -u root --password="JRyAmO=p_7yq"
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.29

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'S0me_P4$.worD'; flush privileges;
Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

mysql>

Работает. Это ошибка в mysql 5.7?