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 для других пользователей
Чтобы изменить пароль обычного пользователя, вам нужно ввести:
mysqladmin -u имя-пользователя -p password newpassПеременные в этом примере:
- имя-пользователя: Имя пользователя, для которого вы хотите изменить пароль.
- newpass: Новый пароль
Слово ‘password’ не является переменной, поэтому не заменяйте его. Команда запросит старый пароль.
Метод 2 - Обновить или изменить пароль
MySQL хранит имена пользователей и пароли в таблице пользователей внутри базы данных MySQL. Вы можете напрямую обновить пароль, используя следующий метод для обновления или изменения паролей:
- Войдите на сервер MySQL, введите следующую команду в командной строке:
mysql -u root -p- Используйте базу данных mysql (вводите команды на подсказке mysql>):
mysql> use mysql;- Измените пароль для пользователя:
MySQL 5.7.5 и ранее
mysql> update user set password=PASSWORD("newpass") where User='ВВЕДИТЕ-ИМЯ-ПОЛЬЗОВАТЕЛЯ-ЗДЕСЬ';MySQL 5.7.6 и новее
mysql> SET PASSWORD FOR 'ВВЕДИТЕ-ИМЯ-ПОЛЬЗОВАТЕЛЯ-ЗДЕСЬ'@'localhost' = PASSWORD("newpass");- Перезагрузите привилегии:
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> quitMySQL 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 -pGet new posts in your inbox
No spam. Unsubscribe anytime.