2017-04-12 2 views
3

Ich versuche MariaDB (10.0.29) auf Ubuntu (16.04.02) einzurichten. Nachdem ich es installiert und den Prozess gestartet habe (sudo service mysql start), kann ich mich nicht als root anmelden, obwohl ich das Passwort ursprünglich auf leer gesetzt habe.MariaDB - kann nicht als root anmelden

Ie mysql -u root wird mir den Zugriff verweigern. Ich loggte mich durch sudo mysql ein und überprüfte die Benutzertabelle, dh. erwartet select user, password, authentication_string from mysql.user und wie:

+---------+----------+-----------------------+ 
| User | password | authentication_string | 
+---------+----------+-----------------------+ 
| root |   |      | 
+---------+----------+-----------------------+ 

Ich habe auch einen neuen Benutzer, dh. create user 'test'@'localhost' identified by ''; und wenn ich versuche, mysql -u test (leeres Passwort) zu tun, es funktioniert wie erwartet und protokolliert mich in

Die Benutzertabelle sieht wie folgt aus:.

+---------+----------+-----------------------+ 
| User | password | authentication_string | 
+---------+----------+-----------------------+ 
| root |   |      | 
| test |   |      | 
+---------+----------+-----------------------+ 

Also, kann mir jemand sagen, warum ich mich nicht anmelden kann als root mit leeren Passwort, aber ich kann als test anmelden?

+0

Leeres Passwort und kein Passwort werden möglicherweise anders behandelt. – tadman

+0

Ich hatte ähnliche Erfahrung. Erstens, bei der Installation hatte ich nicht gefragt, root Passwort zu setzen. Ich habe versucht, root-Passwort zurückzusetzen, bekam aber immer noch keinen Zugriff. Und wieder installiert und in die gleiche Situation geraten. Auch Ubuntu 16.04 64bit. Installierte mysql danach –

+1

Sie können Ihr root-Passwort wie in diesem [link] (https://www.digitalcean.com/community/tutorials/how-to-reset-your-mysql-o--mariadb-root-password) erwähnt zurücksetzen – daBigBug

Antwort

6

Im Gegensatz zu nativen MariaDB-Paketen (die von MariaDB selbst bereitgestellt werden) haben Pakete, die standardmäßig von Ubuntu generiert werden, die unix_socket-Authentifizierung für den lokalen Stamm. Um zu überprüfen, führen

SELECT user, host, plugin FROM mysql.user; 

Wenn Sie unix_socket in der plugin Spalte sehen, das ist der Grund.

die üblichen Passwort-Authentifizierung zurückzukehren,

UPDATE mysql.user SET plugin = '' WHERE plugin = 'unix_socket'; 
FLUSH PRIVILEGES; 

ausführen (wählen Sie die WHERE Klausel, die Ihre Zwecke paßt, ist das oben nur ein Beispiel)

0

ich mit diesem für einige Zeit zu kämpfen. Mein Ubuntu kommt standardmäßig mit MariaDB (10.0.31). Nach einigen Neuinstallationen und dem Wechsel der Plugins zu verschiedenen Vorschlägen konnte ich mich immer noch nicht richtig bei mysql anmelden.

Am Ende habe ich installiert die neueste MariaDB (10.2.12) aus dem Repo: https://downloads.mariadb.org/mariadb/repositories/

ich in der Lage war richtig sofort anmelden.

Verwandte Themen