Смена root-пароля MySQL в Ubuntu

Когда-то я активно занимался изучением операционной системы Ubuntu, лелея надежды на отказ от Windows, но мечтам сбыться, было не суждено, а материал остался, и выкидывать его как-то жалко. Решил опубликовать на блоге, пусть будет. Может кому-то тоже понадобится сменить root-пароля MySQL в Ubuntu и вот ему готовая пошаговая инструкция.

  1. Останавливаем MySQL-сервер (опция stop):

    sudo /etc/init.d/mysql stop

  2. Запускаем mysqld_safeс опцией --skip-grant-tables:

    sudo /etc/init.d/mysqld_safe --skip-grant-tables &

    как я понимаю, mysqld_safe– это сценарий запуска MySQL в "безопасном режиме", или что-то в этом роде. Опция --skip-grant-tables(обратите внимание, перед опцией, стоит два знака минус), как можно догадаться из названия, запускает MySQL сервер без учёта таблицы привилегий, что позволяет обратиться к БД любому пользователю, без пароля и со всеми привилегиями. Знак амперсанта (&) в конце говорит о том, что процесс запускается в фоновом режиме.

  3. Соединяемся с MySQL-сервером как root:

    mysql -u root

    Как вы видите, здесь не надо использовать sudoи/или полный путь.

  4. Войдя в терминал работы с MySQL (строка начинается с mysql>), можно приступить к замене пароля для пользователя root:

    • Выбираем БД с именем mysql, к которой будут осуществляться запросы:

      use mysql

    • Обновляем значение поля password, где поле userимеет значение root, а поле hostзначение localhost:

      update user set password=PASSWORD('new_password') where user='root' and host='localhost';

      Обратите внимание, что для защиты пароля используется SQL-функция PASSWORD(), а сама БД mysql (как я понимаю) является системной.

    • Дальше нам нужно обновить кэш с привилегиями, для чего мы будем использовать команду flushс соответствующей опцией:

      flush privileges;

    • Выходим из консоли mysql:

      \q

  5. Останавливаем все процессы с именем mysqld_safe:

    killall mysqld_safe

  6. Запускаем демона MySQL:

    sudo /etc/init.d/mysql start

  7. Пробуем зайти под rootс новым паролем. Для этого соединяемся с MySQL (как в пункте 3), но уже с дополнительным параметром -p:

    mysql -u root -p

    После этого вас попросят ввести пароль (Enter password:)

На этом у меня всё. Спасибо за внимание. Удачи!