Как войти в базу администратором без пароля и как сбросить пароль root в MariaDB и MySQL на своём сервере.
Сначала попробуйте без пароля
Часто пароль root вообще не нужен: администратор сервера входит в базу через sudo.
- MariaDB — в любой системе:
sudo mariadb. - MySQL в Ubuntu:
sudo mysql. Если root уже переведён на вход по паролю, войдите служебной учётной записью:sudo mysql --defaults-file=/etc/mysql/debian.cnf. - MySQL в AlmaLinux после установки: у root пустой пароль, войти можно командой
mysql -u root. Задайте его сразу:sudo mysql_secure_installation.
Вошли — задайте новый пароль одной командой:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'новый-пароль';
А для сайта заведите отдельного пользователя с доступом к одной базе — пароль root сайту давать не нужно.
Сброс пароля в MariaDB
Если войти не получается совсем, запустите базу без проверки паролей и без доступа по сети — на пару минут:
sudo systemctl stop mariadb
sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables --skip-networking"
sudo systemctl start mariadb
sudo mariadb
Внутри:
FLUSH PRIVILEGES;
ALTER USER root@localhost IDENTIFIED VIA unix_socket OR mysql_native_password USING PASSWORD('новый-пароль');
exit
Так root сможет входить и через sudo, и по паролю. Верните обычный запуск:
sudo systemctl stop mariadb
sudo systemctl unset-environment MYSQLD_OPTS
sudo systemctl start mariadb
Сброс пароля в MySQL в AlmaLinux
sudo systemctl stop mysqld
sudo -u mysql /usr/libexec/mysqld --skip-grant-tables --skip-networking &
mysql -u root
Внутри:
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'новый-пароль';
exit
Остановите временный запуск и запустите базу как обычно:
mysqladmin -u root -p shutdown
sudo systemctl start mysqld
Подробности и другие способы — в документации MySQL.

