Не можете войти в MySQL от имени пользователя root?

8

Похоже, я больше не могу войти в MySQL (на самом деле MariaDB) как пользователь root в Ubuntu 15.04 (я обновился с 14.04 до 14.10)

Я уже пытался сбросить пароль.

То, что работает, sudo mysql- но я хочу войти в систему как root от другого пользователя, используя mysql -uroot -p. Когда я создаю нового пользователя с полными правами и паролем, он работает.

Там что-то изменилось?

Alex
источник
эм ... "но я хочу войти в систему как root" Для меня (!) никогда не было причины для этого. Вы можете настроить систему для любого другого пользователя, кроме root, и сделать то же самое с этим пользователем, если хотите ;-)
Rinzwind
@Rinzwind Много причин, чтобы войти в систему как пользователь root в базе данных . Это единственный способ управления пользователями, базами данных и т. Д. Нет внутреннего механизма sudo.
Оли
@oli мы используем другого пользователя для этого. то есть. доступ с «root» возможен только при использовании «sudo su» для сброса mysql, но это не требует никакой аутентификации.
Rinzwind

Ответы:

6

Итак, вы перешли от версии 5.5.44-1ubuntu0.14.04.1к 10.0.20-0ubuntu0.15.04.1. Звучит страшнее, чем есть, вот почему они назвали 5.6 по какой-то причине .

Кажется, что более новые версии MariaDB добавили плагин в пользовательскую таблицу для принудительной аутентификации по фиксированному пути. В этом случае rootпользователь базы данных продавливаются через в unix_socketплагине . Это также, кажется, известно как auth_socketв некоторых кругах.

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

Вы можете отменить это, закрыв поле плагина для rootпользователя :

shell$ sudo mysql -u root

[mysql] use mysql;
[mysql] update user set plugin='' where User='root';
[mysql] flush privileges;

После этого указанный пароль должен работать. Я не уверен, насколько это целесообразно.

Оли
источник
После этого вход в систему через sudo mysql -u rootбольше не возможен. Это означает, что /etc/mysql/debian.confтакже должны быть адаптированы.
Алекс
4
Не работал для меня. После этого я больше не мог войти в систему с помощью 'sudo mysql -u root'.
MrSmith42