Я пытаюсь установить кластер 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?