Сброс пароля root в MySQL 8.0 / MariaDB 10.4+
Если вы забыли пароль root MySQL, восстановление требует временного запуска сервера в режиме без проверки паролей. Процедура немного отличается для MySQL 8.0 и старых версий.
Метод 1: --skip-grant-tables (универсальный)
# 1. Остановить MySQL
sudo systemctl stop mysql
# или
sudo systemctl stop mariadb
# 2. Запустить без проверки привилегий
sudo mysqld_safe --skip-grant-tables --skip-networking &
# 3. Подключиться без пароля
mysql -u root
# 4. Сбросить пароль
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
# Для MariaDB < 10.4:
UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword123!') WHERE User='root';
FLUSH PRIVILEGES;
# 5. Выйти и перезапустить
EXIT;
sudo killall mysqld_safe mysqld
sudo systemctl start mysqlМетод 2: init-file (MySQL 8.0 рекомендуется)
# 1. Создать файл с SQL-командой
cat > /tmp/mysql-reset.sql << 'EOF'
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
EOF
# 2. Остановить MySQL
sudo systemctl stop mysql
# 3. Запустить с init-file
sudo mysqld --init-file=/tmp/mysql-reset.sql --user=mysql &
# 4. Подождать запуска и убить
sleep 5 && sudo killall mysqld
# 5. Удалить файл и перезапустить
rm /tmp/mysql-reset.sql
sudo systemctl start mysql
mysql -u root -pДля MySQL 8.0 используйте метод с init-file — он безопаснее и не отключает сетевое подключение.
Метод 3: через операционную систему (Ubuntu/Debian)
# На Ubuntu MySQL может использовать unix_socket аутентификацию
sudo mysql
# Если это работает без пароля — можно сменить пароль:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NewPass!';
FLUSH PRIVILEGES;Смена пароля для обычного пользователя
# Зная текущий пароль root:
mysqladmin -u root -pCurrentPassword password NewPassword123!
# Через SQL:
ALTER USER 'username'@'localhost' IDENTIFIED BY 'NewPassword123!';
FLUSH PRIVILEGES;После сброса пароля обязательно: обновите пароль в конфигурационных файлах приложений (.env, wp-config.php, config.php и т.д.), иначе сайт перестанет работать.