От автора: базы данных MySQL известны своей безопасностью. Для того, чтобы получить права суперпользователя, необходимо ввести пароль, который был создан при установке. Но очень часто серверы с базами данных перепродаются, достаются в наследство или передаются любым другим способом. Одним их самых распространённых действий в MySQL, сброс пароля root, как раз и является. Сегодня мы расскажем о том, что такое рут-пасс, как поменять и что делать, если этот реквизит аутентификации вам неизвестен.
Что такое Рут-пароль
Если вы работали с Unix-подобными операционными системами, то термин «рут-права» вам знаком. Он значит, что пользователь получает полное управление над системой, может ее видоизменять с помощью программного кода, доустанавливать, обновлять пакеты и даже провести полную санацию ОС. В Windows тоже есть подобный режим работы, его принято называть administrator.
В Linux существует и альтернативный способ администрирования системы: чтобы не переходить к режиму superuser, можно воспользоваться командой sudo. Именно так устанавливается программное обеспечение и настраивается конфигурация операционки. К сожалению, подобного «промежуточного» режима нет в MySQL и, чтобы сменить password в базах данных, нам придется рутироваться. Это не то же самое, что рут-права в оси: все настройки происходят благодаря root в MySQL.
При установке программного обеспечения для базы данных новички часто допускают ошибки. Одной из тех, которая касается темы нашей статьи, является сеттинг слишком сложного кодового слова, либо небрежность при создании. После, разработчик сталкивается с тем, что абсолютно не помнит рут-пасса и не может произвести базовых конфигурационных действий.
Стандартные привилегии
Это одни из первых шагов при установке СУБД: приоритеты доступа обозначаются еще после запуска команды mysql_install_db. Инициализируются таблицы безопасности, которые обозначают стандартный порядок доступа к режиму суперпользователя. Одной из составляющих является наличие root и пароля к нему.
Как только установка MySQL завершена, получить права суперпользователя может каждый, кто подойдет к терминалу: достаточно лишь ввести нужную команду. Дело в том, что изначально в таблицах безопасности нет пасса для root, если только пользователь не задал его в процессе установки.
Тем не менее, задать пароль пользователя необходимо. Ваши базы данных – это вся информация, которая обеспечивает работу программного обеспечения, веб-приложения или другого продукта, который вы создаете. Это можно сделать через графический интерфейс MySQL Workbench либо через командную строку, что предпочтительней. Наиболее опытные предпочитают даже не строку, а непосредственно таблицы безопасности. Это немного сложнее и не стоит того, если ваша работа не связана с ними в дальнейшем. Результат не изменится в зависимости от способа.
Заменить рут-пасс
Если вам известен пароль, то смена не создаст трудностей. Напротив, это можно сделать в несколько команд из строки.
Для начала, через безопасную оболочку Shell нужно подключится к серверу, который значится, как виртуальный. Далее, необходимо получить root права для работы с правами суперпользователя. Выглядит это так:
mysql -u root -p
Только если вы еще вовсе не работали с базами данных, эта команда может быть для вас неизвестной. Нажав Enter, вы получите поле для ввода действующего кодового слова. Помните, сейчас мы не рассматриваем ситуацию, когда пользователь может зайти без пароля, либо последний утерян.
Итак, вы теперь имеете рут-права в MySQL. Для того, чтобы изменить пароль, нужно ввести следующий набор команд:
use mysql; update user set password=PASSWORD("mynewpassword") where User='root'; flush privileges; quit
Фраза «новый пароль» – заменяет тот пасс, который вы придумаете. Как видите, все даже проще, чем через любой графический интерфейс.
Все по новой
Теперь рассмотрим сценарий, когда вы получили базу данных, а root-прав к ней не имеете, как и верного пасса. Многие пользователи ищут, как узнать пароль с помощью серфинга различных системных файлов. Срабатывает логика о том, что пароль должен где-то храниться. Но это тщетно: только сбросом и назначением нового кодового слова можно возобновить рут-права.
Для начала, необходимо остановить сервер. Сделайте это с помощью команды:
# mysqladmin –uroot –pqwerty shutdown
То же самое можно сделать и через графический интерфейс Workbench, но мы не ищем легких путей. Теперь нужно отключить таблицы безопасности, которые были созданы при установке. Делаем это при помощи команды:
sudo mysqld_safe --skip-grant-tables &
Так, вы сможете заходить в рут без пароля и выполнять сброс командой, которая очень похожа на смену:
mysql> update user set password=PASSWORD('NEW-PASSWORD-HERE') where User='John'; mysql> flush privileges; mysql>exit
После того, как у вас появился новый рут-пасс, не забудьте снова включить таблицы безопасности, ведь однажды, они могут спасти ваш продукт от атаки.