Назад | Перейти на главную страницу

После установки пароля root, почему MYSQL все еще позволяет мне входить в систему без пароля?

После установки пароля root, почему MYSQL все еще позволяет мне входить в систему без пароля из командной строки? Я могу ввести «mysql» в приглашении root unix, он не запрашивает пароль и по-прежнему разрешает мне root-доступ. Я не понимаю, почему «mysql -u root» СЕЙЧАС не запрашивает у меня пароль, который я установил для учетной записи.

Кроме того, я не могу войти в mysql с удаленного компьютера как «root». Я не правильно настроил его ниже? Я получаю сообщение об ошибке: «Хосту ... не разрешено подключаться к этому серверу MySQL. Разве я не настроил его для '%'?

Вот моя таблица пользователей:

mysql> select host,user,password from user;
+-----------+------+-------------------------------------------+
| host      | user | password                                  |
+-----------+------+-------------------------------------------+
| localhost | root | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| %         | root |                                           |
| 127.0.0.1 | root |                                           |
| ::1       | root |                                           |
| localhost |      |                                           |
| %         |      |                                           |
+-----------+------+-------------------------------------------+
6 rows in set (0.00 sec)

Что ж, ответ прямо в этой таблице - вам нужно удалить строки «root», в которых нет пароля.

Кроме того, похоже, что вы разрешаете соединения из любого места (?!?!), Когда не используете пользователя или проход. Наверное, плохая идея. Я бы сделал что-то вроде:

mysql> use mysql;
mysql> delete from user where password = "";

Похоже, что пароль установлен на 'root'@'localhost' запись пользователя, но не на 'root'@'%' запись; на этом основании будет разрешена аутентификация без пароля.

В целях безопасности пересмотрите возможность предоставления root-доступа из любого места. Если вам это нужно, просто избавьтесь от спецификаций localhost:

drop user 'root'@'localhost';
drop user 'root'@'127.0.0.1';
drop user 'root'@'::1';

И установите пароль для 'root'@'%' пользователь:

set password for 'root'@'%' = password('passwordhere');

Не забудьте СМЫВАТЬ ПРИВИЛЕГИИ, иначе вы все равно сможете войти без пароля.