На моем ноутбуке установлен MySQL, и он отлично работает, за исключением того, что мне разрешено входить в систему без ввода пароля root. Я также могу войти в систему, указав пароль root. Если предоставленный пароль не совпадает, доступ запрещается. Пароль root был изменен на то, что я выбрал, когда я изначально установил MySQL. Я только что заметил сегодня вход без пароля.
Итак, мне нужно остановить доступ к учетной записи root, если пароль не указан. Что я пробовал до сих пор, так это сбросить пароль root с помощью:
mysqladmin -u root password TopSecretPassword
Затем я вошел в консоль и выпустил:
mysql> flush privileges; exit;
Я все еще могу войти в MySQL с помощью:
%> mysql -u {enter}
Как мне остановить такое поведение?
ДОПОЛНИТЕЛЬНЫЕ ДЕТАЛИ:
%> mysql -u {enter}
mysql>SELECT USER(), CURRENT_USER();
> root@localhost, root@localhost
mysql>SELECT COUNT(*) FROM mysql.users WHERE user='root' AND password='';
> COUNT(*)
> 0
mysql>SELECT COUNT(*) FROM mysql.users WHERE user='';
> COUNT(*)
> 0
mysql>SELECT COUNT(*) FROM mysql.users WHERE user='root';
> COUNT(*)
> 1
%> vi /etc/my.cnf
/skip-grant-tables
> E486: Pattern not found: skip-grant-tables
SELECT user,host,password FROM mysql.user;и поместите его в свой ответ. Не беспокойтесь о пароле. Он должен быть зашифрован MD5. - person RolandoMySQLDBA   schedule 24.08.2011<blockquote><pre>. Отредактируйте свой вопрос и попробуйте. Код (если он у вас есть) можно пометить, сделав для каждой строки отступ с четырьмя пробелами. - person outis   schedule 24.08.2011SELECT @@version;) и клиента (mysql -V) вы используете?mysql -uдолжен привести к ошибке, если вы не укажете имя пользователя. Можете ли вы войти в систему, если предоставите имя пользователя, но не пароль (mysql -u root)? - person outis   schedule 26.08.2011