Mysql root password set/change/reset

Сразу оговорюсь, данная заметка посвящена выполнению указанных действий на базе unix-like систем, в частности, мой подопытный — ubuntu.

Что ещё за root пользователь

root пользователь mysql это администраивная учетная запись вашего сервера базы данных. Пожалуйста не путайте с root пользователем вашей linux системы. Имя у этой записи вполне может отличаться, скажем изменили, в целях безопасности, но смысл остается тот же. Необходимость сменить/установить пароль может возникнуть по разным причинам. Скажем старый пароль стал известен людям, которые его знать не должны, или, например, сервер после перенастройки стал виден из внешнего мира. Вероятных причин может быть достаточно много и их рассмотрение, а так же рассмотрение методов защиты сервера Б.Д. — тема отдельной статьи.

Как быть, когда все пропало

В ситуации когда вам понадобилось сменить пароль root пользователя мы можем решить эту задачу одним из следующих путей.

  • воспользоваться утилитой mysqladmin
  • подключиться к серверу Б.Д. и выполнить ряд запросов.
Mysqladmin

Подключаемся к П.К. на котором запущен сервер Б.Д., скажем его IP будет «192.168.1.5», а учетная запись пользователя linux «crux»

Если пароль не был установлен ранее, то просто устанавливаем пароль командой mysqladmin

Где NEWPASSWORD, как вы уже догадались это ваш новый пароль. Если же пароль пользователя уже был установлен, вам нужно сообщить его утилите.

Аналогичным образом можно установить/изменить пароль любого другого пользователя mysql.

 При помощи mysql запроса

Данный вариант может быть полезен, если, скажем у вас есть доступ к mysql но нет доступа к ssh. Хотя mysqladmin может и по сети подключиться к серверу, но чем пользоваться решайте сами. Подключаемся к mysql, если пароль для рут пользователя не был установлен уберите параметр «-p» из команды.

Далее перемещаемся в базу данных mysql и изменяем пароль пользователя.

Дело сделано.

А если пароль утерян

В случае если старый пароль утерян, можно исполнить небольшой костыль. Необходимо перезапустить mysql c параметром —skip-grant-tables и для безопастности во время выполнения данной операции с параметром —skip-networking, изменить пароль и перезапустить mysql сервер в штатном режиме. Выглядеть последовательность действий будет примерно так: