Виникла ситуація - загубили пароль від облікового запису root MySQL, якщо раніше пароль можна було подстмотреть в файлі my.cnf то в ситуації, що виникла це не преставився можливим.
Рішення в краце просте - зупинити сервіс MySQL, запустити з певним ключем, виконати пару команд, перезапустити сервіс, про що сказанно на офф. сайті. нижче "на пальцях" розсаджені як це зробити.
Весь розповідь буде виконуватися в CentOS 7, але думаю це буде актуально для багатьох Linux систем :)
Зупинка служби MySQL в CentOS
systemctl stop mysqld
Запуск служби MySQL в безпечному режимі
mysqld_safe --skip-grant-tables
Підключення клієнтом до MySQL
Для підключення я використовував той же сервер, підключившись до нього по SSH і виконавши команду:
Скидання пароля MySQL
Далі послідовно виконуємо кілька команд:
use mysql;
update user set password = PASSWORD ( "NewPassword") where User = 'root';
flush privileges;
quit
mysql -u root
Welcome to the MariaDB monitor. Commands end with; or \ g.
Your MariaDB connection id is 39
Server version: 5.5.37-MariaDB-wsrep MariaDB Server, wsrep_25.10.r3980
Type 'help;' or '\ h' for help. Type '\ c' to clear the current input statement.
MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [mysql]> update user set password = PASSWORD ( "NewPassword") where User = 'root';
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0
MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
Зупиняємо запущену службу, в моєму випадку це був Ctrl + C і запускаємо знову:
systemctl start mysqld
Підключаємося використовуючи новий пароль: