Access denied for user

Словил офигенный случай при работе с MySQL.

Каждый нормальный человек скажет — неправильно вводишь логин/пароль, либо для данного пользователя не разрешен hostname, с которого идет подключение. Но нет, в моем случая я успешно подключался с этими же логином и паролем с другого компьютера (с удаленного). Кроме того, с локалхоста коннект не проходил ни под одним логином/паролем, которые есть в базе. И тут я решил попробовать коннектнуться без пароля. Результат меня очень удивил — я подключился. Дальнейшие тестирования показали, что я могу указать произвольный логин (даже которого не существует) и подключение пройдет успешно.

Как оказалось, такое происходит, если в таблице mysql.user существует строка, в которой поле User = » (пустая строка). После удаления такой строки — все пришло в норму.

Сначала я подумал, что меня похакали, но потом посмотрел /var/log/mysql/mysqld.err:

Оказалось, что сервак ребутнулся и база немного убилась. При старте MySQL попытался восстановить таблицы, но сделал это не очень удачно.

Оставить комментарий


Примечание - Вы можете использовать эти HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">