Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.
Сброс пароля на Ubuntu: метод с init-файлом
Этот метод с использованием --init-file предпочтителен как для MySQL 8.0+, так и для MariaDB (версии 10.1+).
Шаг 1: Остановите сервер MySQL
Остановите службу базы данных, чтобы подготовиться к запуску в специальном режиме.
sudo systemctl stop mysqlШаг 2: Создайте временный init-файл
Создайте файл, содержащий команду для установки нового пароля для пользователя root. Этот файл будет выполнен при запуске сервера.
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'НОВЫЙ_ПАРОЛЬ';" > /tmp/mysql-initВажно : Замените НОВЫЙ_ПАРОЛЬ на ваш новый, надежный пароль.
Шаг 3: Запустите сервер с init-файлом и отключенной сетью
Запустите MySQL, указав путь к созданному init-файлу и отключив сеть (--skip-networking). Это предотвратит внешние подключения во время сброса.
sudo mysqld --init-file=/tmp/mysql-init --skip-networkingMySQL выполнит команду из /tmp/mysql-init и установит новый пароль.
Шаг 4: Проверьте и очистите
Удалите временный init-файл:
Шаг 5: Запустите сервер в штатном режиме
Запустите службу MySQL обычным образом.
sudo systemctl start mysqlПодключитесь к базе данных, используя новый пароль:
Введите НОВЫЙ_ПАРОЛЬ в ответ на запрос сервера.
Сброс пароля на Windows: метод skip-grant-tables
На операционной системе Windows управление службами отличается, но логика сброса пароля остается прежней.
Шаг 1: Остановите службу MySQL
Запустите командную строку (CMD) или PowerShell от имени Администратора.
Остановите службу. Название может быть MySQL, MySQL80 или MariaDB. Пример для MySQL 8.0:
Шаг 2: Запустите сервер без проверки прав
Перейдите в папку bin вашей установки MySQL/MariaDB. Пример пути: C:\Program Files\MySQL\MySQL Server X.X\bin.
Запустите сервер с отключенной проверкой привилегий в новом окне командной строки. Это окно должно оставаться открытым.
"C:\Program Files\MySQL\MySQL Server X.X\bin\mysqld" --skip-grant-tablesШаг 3: Подключитесь и смените пароль
Откройте второе окно командной строки от Администратора. Перейдите в ту же папку bin и подключитесь:
Выполните команды для сброса пароля:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'НОВЫЙ_ПАРОЛЬ';Альтернативный вариант для старых версий MySQL:
UPDATE mysql.user SET authentication_string=PASSWORD('НОВЫЙ_ПАРОЛЬ'), plugin='mysql_native_password' WHERE user='root';Шаг 4: Запустите сервер в штатном режиме
Закройте первое окно, где запущен сервер в безопасном режиме.
Во втором окне запустите службу обычным образом. Пример для MySQL 8.0:
Сброс пароля для MySQL 5.7 и более ранних версий
Если вы используете более старую версию MySQL, метод с Init-файлом может не сработать. В этом случае вернитесь к классическому методу --skip-grant-tables. Этот способ работает для обеих операционных систем — Linux и Windows:
-
Остановите службу.
-
Запустите с флагом
--skip-grant-tablesи--skip-networking:
Запустите с флагом --skip-grant-tables и --skip-networking:
mysqld --skip-networking --skip-grant-tables- Выполните смену пароля (вместо
ALTERвозможно придется использоватьUPDATE):
Выполните смену пароля (вместо ALTER возможно придется использовать UPDATE):
UPDATE mysql.user SET Password=PASSWORD('НОВЫЙ_ПАРОЛЬ') WHERE User='root';
FLUSH PRIVILEGES;- Остановите и запустите сервер в штатном режиме.
Остановите и запустите сервер в штатном режиме.
Поскольку MySQL 5.7 прекратила получать обновления безопасности с октября 2023 года, обновление до более новой версии критически важно для защиты вашей инфраструктуры.
Особенности Simple-Server
Если вы используете облачную базу данных в Simple-Server, вам не нужно выполнять сложные процедуры сброса:
-
Для облачной базы MySQL пользователь root недоступен. Вместо него автоматически создается пользователь с ограниченным доступом к системным функциям, но с полными правами к созданным базам.
-
Вы можете скопировать текущий пароль и имя пользователя в личном кабинете.
Для облачной базы MySQL пользователь root недоступен. Вместо него автоматически создается пользователь с ограниченным доступом к системным функциям, но с полными правами к созданным базам.
Вы можете скопировать текущий пароль и имя пользователя в личном кабинете.
- Сменить пароль, создать нового пользователя и отредактировать привилегии можно прямо в интерфейсе Simple-Server, без необходимости заходить на сервер или перезапускать службу.
Сменить пароль, создать нового пользователя и отредактировать привилегии можно прямо в интерфейсе Simple-Server, без необходимости заходить на сервер или перезапускать службу.
Восстановление доступа к MySQL — это стандартная процедура, требующая, прежде всего, доступа к серверу. Используя методы с init-файлом (на Linux) или --skip-grant-tables (на Windows или старых версиях MySQL), вы сможете быстро вернуть контроль над вашей СУБД.
-
Используйте надежный, сложный пароль.
-
Сразу после сброса убедитесь, что временные файлы (вроде
/tmp/mysql-init) удалены, а сервер работает в штатном режиме. -
Для критически важных проектов всегда рассматривайте использование облачных баз данных от провайдеров, таких как Simple-Server, где управление паролями и базовой безопасностью упрощено и автоматизировано.
Используйте надежный, сложный пароль.
Сразу после сброса убедитесь, что временные файлы (вроде /tmp/mysql-init) удалены, а сервер работает в штатном режиме.
Для критически важных проектов всегда рассматривайте использование облачных баз данных от провайдеров, таких как Simple-Server, где управление паролями и базовой безопасностью упрощено и автоматизировано.
Нужен сервер для практики? Закажите VPS на Simple-Server — root-доступ, NVMe, DDoS-защита и поддержка 24/7.