MYSTERRIA3.0

Восстановление root пароля в MySQL (Unix)

Способ №1. Более правильный, долгий и секурный (временами излишне секурный, чтобы тратить на него время).

Перед тем, как следовать данной инструкции убедитесь, что вы запускаете сервер из под unix аккаунта, от которого обычно работает ваш mysql сервер.
Если это пользователь mysql, то либо зайдите под ним, либо используйте при запуске демона параметр --user=mysql. Если вы запустите сервер из-под рута, в дата-директории могут быть созданы файлы с рутовыми пермишенами, что в последствие может вызвать проблемы при обычном запуске сервера (например из /etc/init.d/).

1. Во-первых нам надо остановить mysql сервер, если он работает в данный момент. Для этого вы можете найти pid файл и убить процесс сервера по его идентификатору или попросту ввести в консоли killall -TERM mysqld

2. Создаем инит-файлик следующего содержания:

 UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; FLUSH PRIVILEGES; 

Оба статмента должны находится на одной строке, вместо "MyNewPass" впишите новый пароль. Хорошей идеей будет либо сразу после восстановления пароля удалить этот файлик или же позаботиться, чтобы он не стал виден другим пользователям.

3. Допустим мы сохранили инит-файлик из предыдущего пункта как /home/snake/mysql-init, дальше нам нужно запустить сервер с переметром --init-file


shell> mysqld_safe --init-file=/home/me/mysql-init &


После старта сервера инит-файлик можно удалить. Теперь вы можете залогиниться на mysql сервер с указанным в файлике паролем.

 

Способ 2. Чуть менее секурен, но быстр.

Суть в том, чтобы запустить сервер без проверки grant-таблиц вообще, делается это с помощью указания параметра --skip-grant-tables. Запущенный в этом режиме сервер пускает под любым пользователем без пароля.
На время запуска сервера в этом режиме я рекомендую все же отключить возможность подключения к серверу извне с помощью параметра --skip-networking.

Как вы видите, потеря секурности в этом случае возможна только в случае локальных недоброжелателей, которые сидят у юникс-сокета и поджидают когда же админ забудет рутовый пароль :)

Рубрики: MySQL

↑ Наверх


blog comments powered by Disqus

Контакты

Igor Zinkovsky aka TLoD,Snake. Писать на электропочту, стучаться в аську 302380533, искать в Санкт-Петербурге.

© 2002-2019