MySQL · 4 min read · Feb 13, 2026

Настройка, изменение и сброс паролей root MySQL и MariaDB

Этот учебник объясняет, как вы можете установить, изменить и сбросить (если вы забыли пароль) пароли root MySQL или MariaDB. Снова и снова я вижу проблемы, такие как ошибка mysqladmin: connect to server at ‘localhost’ failed error: ‘Access denied for user ‘root’@’localhost’ (using password: YES)’. Поэтому я подумал, что пришло время напомнить вам, как решить проблемы с паролями, связанными с MySQL. Если вы просто ищете быстрое решение как сбросить пароль root MySQL, вы можете найти это внизу этого учебника. Этот учебник совместим со всеми основными дистрибутивами Linux, включая CentOS, Debian, Fedora и Ubuntu.

Используйте команду mysqladmin для изменения пароля root

Метод 1 - Установите пароль root в первый раз

Если вы никогда не устанавливали пароль root для MySQL, сервер вообще не требует пароль для подключения в качестве root. Чтобы установить пароль root в первый раз, используйте команду mysqladmin в командной строке следующим образом:

mysqladmin -u root password newpass

Если вы хотите изменить (или обновить) пароль root на новый пароль ‘ newpass ‘, тогда вам нужно использовать следующую команду:

mysqladmin -u root -p password newpass
Введите пароль:

Если вы получите…

mysqladmin: connect to server at 'localhost' failed  
error: 'Access denied for user 'root'@'localhost' (using password: YES)'

то следуйте инструкциям ниже о том, как восстановить ваш пароль MySQL.

Слово ‘ password ‘ в приведенном выше примере является частью команды, не заменяйте его на ваш пароль. Слово ‘ newpass ‘ - это новый пароль.

Альтернативой использованию команды mysqladmin при установке пароля root MySQL или MariaDB в первый раз является использование команды mysql_secure_installation. Эта команда не только запросит старый и новый пароль root MySQL, но также выполнит некоторые другие настройки безопасности, такие как отключение тестовой базы данных.

Вот как использовать эту команду:

mysql_secure_installation

Ответьте на вопросы, как показано ниже:

Изменить пароль root? [Y/n] <-- y  
Новый пароль: <-- Введите новый пароль root MySQL  
Повторите новый пароль: <-- Повторите пароль root MySQL  
Удалить анонимных пользователей? [Y/n] <-- y  
Запретить удаленный вход root? [Y/n] <-- y  
Удалить тестовую базу данных и доступ к ней? [Y/n] <-- y  
Перезагрузить таблицы привилегий сейчас? [Y/n] <-- y  

Приведенные выше ответы являются рекомендациями, вы можете выбрать другие настройки, например, если вы предпочитаете сохранить тестовые базы данных или вам нужен удаленный доступ для пользователя root. Примечание: вам не нужен удаленный доступ для использования PHPMyAdmin удаленно.

Используйте mysql_secure_installation для изменения пароля root MySQL

Изменить пароль MySQL для других пользователей

Чтобы изменить пароль обычного пользователя, вам нужно ввести:

mysqladmin -u имя-пользователя -p password newpass

Переменные в этом примере:

  • имя-пользователя: Имя пользователя, для которого вы хотите изменить пароль.
  • newpass: Новый пароль

Слово ‘password’ не является переменной, поэтому не заменяйте его. Команда запросит старый пароль.

Метод 2 - Обновить или изменить пароль

MySQL хранит имена пользователей и пароли в таблице пользователей внутри базы данных MySQL. Вы можете напрямую обновить пароль, используя следующий метод для обновления или изменения паролей:

  1. Войдите на сервер MySQL, введите следующую команду в командной строке:
mysql -u root -p
  1. Используйте базу данных mysql (вводите команды на подсказке mysql>):
mysql> use mysql;
  1. Измените пароль для пользователя:

MySQL 5.7.5 и ранее

mysql> update user set password=PASSWORD("newpass") where User='ВВЕДИТЕ-ИМЯ-ПОЛЬЗОВАТЕЛЯ-ЗДЕСЬ';

MySQL 5.7.6 и новее

mysql> SET PASSWORD FOR 'ВВЕДИТЕ-ИМЯ-ПОЛЬЗОВАТЕЛЯ-ЗДЕСЬ'@'localhost' = PASSWORD("newpass");
  1. Перезагрузите привилегии:
mysql> flush privileges;  
mysql> quit

Этот метод вам нужно использовать при использовании PHP или Perl скриптов.

Восстановление утерянного пароля root MySQL

Вы можете восстановить пароль сервера базы данных MySQL с помощью следующих пяти простых шагов:

Шаг # 1: Остановите процесс сервера MySQL.

Шаг # 2: Запустите сервер/демон MySQL (mysqld) с опцией –skip-grant-tables, чтобы он не запрашивал пароль.

Шаг # 3: Подключитесь к серверу MySQL как пользователь root.

Шаг # 4: Установите новый пароль root.

Шаг # 5: Выйдите и перезапустите сервер MySQL.

Вот команды, которые вам нужно ввести для каждого шага (войдите как пользователь root):

Шаг # 1: Остановите службу MySQL:

service mysql stop

Вывод:

Остановка сервера базы данных MySQL: mysqld.

Шаг # 2: Запустите сервер MySQL без пароля:

mysqld_safe --skip-grant-tables &

Вывод:

[1] 5988  
Запуск демона mysqld с базами данных из /var/lib/mysql  
mysqld_safe[6025]: запущен

Шаг # 3: Подключитесь к серверу MySQL, используя клиент MySQL:

mysql -u root

Вывод:

Добро пожаловать в монитор MySQL. Команды заканчиваются ; или \g.  
Ваш идентификатор подключения MySQL: 56299  
Версия сервера: 5.6.34-1 (Debian)
Copyright (c) 2000, 2016, Oracle и/или его дочерние компании. Все права защищены.
Oracle является зарегистрированным товарным знаком Oracle Corporation и/или его  
дочерних компаний. Другие названия могут быть товарными знаками их соответствующих  
владельцев.
Введите 'help;' или '\h' для получения справки. Введите '\c' для очистки текущего ввода.
  
mysql>

Шаг # 4: Установите новый пароль пользователя root MySQL:

MySQL 5.7.5 и ранее

mysql> use mysql;  
mysql> update user set password=PASSWORD("НОВЫЙ-ПАРОЛЬ-ROOT") where User='root';  
mysql> flush privileges;  
mysql> quit

MySQL 5.7.6 и новее

mysql> use mysql;  
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD("newpass");  
mysql> flush privileges;  
mysql> quit  

Шаг # 5: Остановите сервер MySQL:

service mysql stop

Вывод:

Остановка сервера базы данных MySQL: mysqld  
ОСТАНОВКА сервера из файла pid /var/run/mysqld/mysqld.pid  
mysqld_safe[6186]: завершен  
  
[1]+  Завершено  mysqld_safe --skip-grant-tables

Или используйте эту команду, чтобы остановить MySQL, если команда выше не смогла его остановить (какая команда работает, зависит от версии MySQL):

killall mysqld

Вывод может отличаться в зависимости от дистрибутива Linux. Не беспокойтесь, если не будет сообщения об ошибке. Запустите сервер MySQL и протестируйте его:

service mysql start  
mysql -u root -p
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.