Nie możesz się zalogować do MySQL jako root?

8

Wygląda na to, że nie mogę zalogować się do MySQL (właściwie MariaDB) jako użytkownik root w Ubuntu 15.04 (zaktualizowałem z 14.04 do 14.10)

Próbowałem już zresetować hasło.

Co jest praca, jest sudo mysql- ale chcę zalogować się jako root z innym użytkownikiem używając mysql -uroot -p. Kiedy tworzę nowego użytkownika z pełnymi prawami i hasłem, działa.

Czy coś się zmieniło?

Alex
źródło
ehm ... ”, ale chcę zalogować się jako root”. Dla mnie (!) nigdy nie było tego powodu. Możesz skonfigurować system dla dowolnego użytkownika innego niż root i zrobić to samo dla tego użytkownika, jeśli chcesz ;-)
Rinzwind
@Rinzwind Wiele powodów, aby zalogować się jako root w bazie danych . Jest to jedyny sposób zarządzania użytkownikami, bazami danych itp. Nie ma wewnętrznego mechanizmu sudo.
Oli
@oli używamy do tego innego użytkownika. to znaczy. dostęp z „rootem” jest możliwy tylko przy użyciu „sudo su” do zresetowania mysql, ale ten nie wymaga uwierzytelnienia.
Rinzwind

Odpowiedzi:

6

Więc przeszedłeś z wersji 5.5.44-1ubuntu0.14.04.1do 10.0.20-0ubuntu0.15.04.1. Brzmi straszniej niż to jest, z jakiegoś powodu tak właśnie nazwali 5.6 .

Wygląda na to, że nowsze wersje MariaDB dodały wtyczkę do tabeli użytkowników, aby wymusić uwierzytelnianie poprzez ustaloną ścieżkę. W takim przypadku, rootużytkownik bazy danych jest zmuszony przez na unix_socketwtyczce . Wydaje się to również znane, jak auth_socketw niektórych kręgach.

W każdym razie ta wtyczka ogranicza rzeczy, więc tylko rootużytkownik systemu może zalogować się jako baza danych root, bez hasła. Dokonali wyboru bezpieczeństwa.

Możesz to cofnąć, opróżniając pole wtyczki dla rootużytkownika :

shell$ sudo mysql -u root

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

Określone hasło powinno potem działać. Nie jestem jednak pewien, jak to jest zalecane.

Oli
źródło
Po tym logowanie sudo mysql -u rootnie będzie już możliwe. Oznacza to, że /etc/mysql/debian.confnależy również dostosować.
Alex
4
Nie działało dla mnie. Po tym nie mogłem już nawet zalogować się przy użyciu „sudo mysql -u root”.
MrSmith42