Как узнать пароль root пользователя для базы данных MySQL в Ubuntu?

Мне достался один VPS сервер, в наследство, так скажем. Бывший владелец не выходит на связь. Как мне узнать пароль root пользователя для базы данных MySQL? Где он храниться в файловой системе Ubuntu 14.04?
  • Вопрос задан
  • 18187 просмотров
Пригласить эксперта
Ответы на вопрос 3
Scorpi
@Scorpi
Узнать его нельзя, он зашифрован. Но можно сбросить.
// Останавливаем MySQL
sudo /etc/init.d/mysql stop
// Запускаем в режиме игнорирования прав и запретом доступа из сети
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
// Входим как root
mysql -u root
// Получаем права на изменение паролей
FLUSH PRIVILEGES;
// Меняем пароль на новый. NEW_PASSWORD заменить на свой пароль
SET PASSWORD FOR root@'localhost' = PASSWORD('NEW_PASSWORD');
// Обновляем таблицы привелегий
FLUSH PRIVILEGES;
// Выходим из клиента и перезапускаем сервер в обычном режиме
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
Ответ написан
@m0rd
Пароль хранится в базе. Сбрось его и все.
Ответ написан
Комментировать
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
#!/bin/bash

mysql_password="новый_пароль"

/etc/init.d/mysql stop

echo "UPDATE mysql.user SET Password=PASSWORD('${mysql_password}') WHERE User='root';" > /tmp/mysql-set-pass
echo "FLUSH PRIVILEGES;" >> /tmp/mysql-set-pass

su -c "mysqld_safe --init-file=/tmp/mysql-set-pass &" mysql --shell=/bin/bash
sleep 5

echo "[mysql]
password = ${mysql_password}

[mysqldump]
password = ${mysql_password} " > /root/.my.cnf

/etc/init.d/mysql restart

mysql --password="" -e "SELECT 1;" 2>/dev/null && exit 1
mysql -e "SELECT 1;" 1>/dev/null || exit 1

rm /tmp/mysql-set-pass


Сбрось скриптом на новый пароль.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы