Ниже описан способ сброса пароля для MySQL 5.7
Проверим версию MySQL:
mysql --version mysql Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using EditLine wrapper
От версии пакета MySQL будет зависть SQL-запрос, который необходимо выполнить для изменения пароля. Далее останавливаем MySQL:
service mysql stop
Создаем каталог, устанавливаем на него права:
mkdir -p /var/run/mysqld chown -R mysql /var/run/mysqld
Запускаем MySQL без загрузки grant tables, в целях безопасности отключаем сеть:
mysqld_safe --skip-grant-tables --skip-networking &
Или же можем добавить в секцию [mysqld] файла my.cnf два этих параметра skip-grant-tables и skip-networking.
Теперь мы можем подключится к MySQL без пароля:
mysql -u root
Перезагрузим таблицы привилегий:
mysql> FLUSH PRIVILEGES;
Теперь осталось только изменить пароль root. Если у вас MySQL 5.7.6 или новее, MariaDB 10.1.20 или новее, используем следующую команду:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
Для версий MySQL 5.7.5 или старее, MariaDB 10.1.20 или старее, используем команду:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
Результат выполнения команды должен выглядеть следующим образом:
Output Query OK, 0 rows affected (0.00 sec)
Перезапустим сервер сервер и подключимся к MySQL с использованием нового пароля:
mysql -u root -p
Таким образом, мы спросили пароль root и получили доступ к MySQL с правами администратора.