Sie können sich nicht mehr als Root bei MySQL anmelden?

8

Es sieht so aus, als ob ich mich in Ubuntu 15.04 nicht mehr als Root-Benutzer bei MySQL (eigentlich MariaDB) anmelden kann (ich habe ein Upgrade von 14.04 über 14.10 durchgeführt).

Ich habe bereits versucht, das Passwort zurückzusetzen.

Was ist Arbeit, ist sudo mysql- aber ich mag als root anmelden von einem anderen Benutzer verwendet mysql -uroot -p. Wenn ich einen neuen Benutzer mit vollen Rechten und Passwort erstelle, funktioniert es.

Hat sich etwas geändert?

Alex
quelle
ehm ... "aber ich möchte mich als root anmelden" Für mich (!) gab es nie einen Grund dafür. Sie können das System für jeden anderen Benutzer als root einrichten und dasselbe von diesem Benutzer aus tun, wenn Sie möchten
;-)
@Rinzwind Viele Gründe, sich als Root in einer Datenbank anzumelden . Dies ist die einzige Möglichkeit, Benutzer, Datenbanken usw. zu verwalten. Es gibt keinen internen Sudo-Mechanismus.
Oli
@oli wir verwenden dafür einen anderen Benutzer. dh. Der Zugriff mit "root" ist nur möglich, wenn "sudo su" zum Zurücksetzen von MySQL verwendet wird, für das jedoch keine Authentifizierung erforderlich ist.
Rinzwind

Antworten:

6

So haben Sie weg von Version 5.5.44-1ubuntu0.14.04.1zu 10.0.20-0ubuntu0.15.04.1. Klingt beängstigender als es ist, genau das haben sie aus irgendeinem Grund 5.6 genannt .

Es scheint, dass neuere Versionen von MariaDB der Benutzertabelle ein Plugin hinzugefügt haben, um die Authentifizierung über einen festen Pfad zu erzwingen. In diesem Fall wird der rootDatenbankbenutzer durch das unix_socketPlugin gezwungen . Dies scheint auch auth_socketin einigen Kreisen bekannt zu sein.

Auf jeden Fall schränkt dieses Plugin die Dinge ein, sodass sich nur der Systembenutzer ohne Kennwort rootals Datenbank anmelden kann root. Es ist eine Sicherheitsentscheidung, die sie getroffen haben.

Sie können dies rückgängig machen, indem Sie das Plugin-Feld für den rootBenutzer leeren :

shell$ sudo mysql -u root

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

Danach sollte ein angegebenes Passwort funktionieren. Ich bin mir nicht sicher, wie ratsam das ist.

Oli
quelle
Danach ist die Anmeldung über sudo mysql -u rootnicht mehr möglich. Das heißt, das /etc/mysql/debian.confsollte auch angepasst werden.
Alex
4
Hat bei mir nicht funktioniert. Danach konnte ich mich nicht einmal mehr mit 'sudo mysql -u root' anmelden.
MrSmith42