webentwicklung-frage-antwort-db.com.de

Anmeldung mit erstelltem Benutzer in mysql nicht möglich

Verwenden Sie diesen Befehl

GRANT ALL PRIVILEGES ON *.* to 'brian'@'%' identified by 'password';

Ich versuche mich einzuloggen mit:

 mysql -u brian -ppassword

Der Fehler ist:

ERROR 1045 (28000): Access denied for user 'brian'@'localhost' (using password: YES)

Ich mache das als root und habe versucht Privilegien zu leeren.

Ich habe es mit unzähligen Benutzern ausprobiert, aber es scheint nicht zu funktionieren. Ich kann einen Benutzer ohne Passwort erstellen und Login funktioniert. Befehlszeile und von phpmyadmin

Prüfen Sie auch, ob sich der Benutzer in mysql.user befindet.

Zuschüsse für brian Shows anzeigen:

| GRANT ALL PRIVILEGES ON *.* TO 'brian'@'%' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19' |
65
Brian G

Sie haben wahrscheinlich dieses unbefristete MySQL-Problem, bei dem einer der Standardbenutzer in der Benutzertabelle '' @ localhost ist. Dies führt dazu, dass alle localhost-Benutzer später in der Tabelle abgelehnt werden. Was ich tun würde, ist mysqldump die mysql-Datenbank und suche diesen Eintrag in der User-Tabelle; Wenn es gefunden wird, löschen Sie es und leeren Sie die Berechtigungen.

Weitere Informationen finden Sie unter https://dev.mysql.com/doc/refman/5.5/en/connection-access.html .

Es ist ein weit verbreitetes Missverständnis zu glauben, dass für einen bestimmten Benutzernamen zuerst alle Zeilen verwendet werden, die diesen Benutzer explizit benennen, wenn der Server versucht, eine Übereinstimmung für die Verbindung zu finden. Das ist nicht wahr. Das obige Beispiel veranschaulicht dies, wo eine Verbindung von h1.example.net von jeffrey zuerst nicht mit der Zeile übereinstimmt, die 'jeffrey' als Wert für die Benutzerspalte enthält, sondern mit der Zeile ohne Benutzernamen. Als Folge davon wird Jeffrey als anonymer Benutzer authentifiziert, obwohl er bei der Verbindung einen Benutzernamen angegeben hat. 

168
chaos

Dies ist ein Problem, das von anonymen Benutzern verursacht wird. Wenn ich MySQL installiert habe, laufe ich immer 

Shell> mysql_secure_installation 

und wählen Sie, um das Root-Passwort festzulegen/zu ändern, anonyme Benutzer zu entfernen, Remote-Root-Login zuzulassen und die Testdatenbank zu entfernen. Dadurch wird der anonyme Benutzer entfernt und Ihre Installation gesichert. Es sollte auch das Problem lösen, das Sie haben.

40
user2509314
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
20
zinking

Keine der hier angebotenen Lösungen funktionierte. Nach vielen Fehlern und Versuchen wurde mir klar, dass ich Sonderzeichen im Passwort hatte. Das Ändern des Passworts ohne Sonderzeichen hat das Problem behoben

10
cortopy

Die mysql-Dokumente haben folgendes zu sagen: (Von http://dev.mysql.com/doc/refman/5.1/de/adding-users.html ):

Zwei der Konten haben den Benutzernamen monty und das Kennwort some_pass. Bei beiden Konten handelt es sich um Superuser-Konten mit allen erforderlichen Berechtigungen. Das Konto 'monty'@'localhost' kann nur verwendet werden, wenn eine Verbindung vom lokalen Host hergestellt wird. Das Konto 'monty'@'%' verwendet den Platzhalter '%' für den Host-Teil, sodass es von jedem Host aus verwendet werden kann.

Es ist notwendig, dass beide Konten für monty vorhanden sind, um von überall her als monty eine Verbindung herstellen zu können. Ohne das Konto localhost hätte das Konto für anonyme Benutzer für localhost, das von mysql_install_db erstellt wird, Vorrang, wenn monty eine Verbindung von .__ herstellt. lokaler Host Als Ergebnis wird monty als anonymer Benutzer behandelt. Der Grund dafür ist, dass das Konto für anonyme Benutzer einen spezifischeren Host-Spaltenwert hat als das Konto 'monty'@'%' und daher in der Sortierreihenfolge der Benutzertabellen früher angezeigt wird.

In diesem Sinne würde ich Ihnen empfehlen, einen 'brian'@'localhost'-Benutzer mit den gleichen Berechtigungen zu erstellen.

3
Russell Silva

Sie haben die Zitate um Brian in Ihrer Erteilungserklärung vergessen. Versuchen Sie es so:

GRANT ALL PRIVILEGES ON *.* to 'brian'@'%' identified by 'password';

2
Asaph

Ich habe gerade ein Konto erstellt, um zukünftigen Suchern eine weitere Möglichkeit zu bieten:

Für erfahrene Benutzer mag es offensichtlich sein, aber mein Passwort wurde zufällig generiert und enthielt ein "\". Es dauerte eine Weile, bis ich herausfand, dass dieser Charakter Probleme zu verursachen schien, was dazu führte, dass ich mich nicht einloggen konnte.

2
ception

Ich denke, Russell Silva ist richtig ...

Ich habe einen Benutzer von erstellt

CREATE USER 'username'@'%' PASSWORD='userpassword';

Ich kann mich jedoch nicht mit diesem Konto anmelden. Das hat mir die Konsole gesagt 

ERROR 1045 (28000): Access denied for user 'username'@'localhost' (using password: YES)

Also habe ich einen Benutzer mit dem gleichen Benutzernamen erstellt, außer dass "%" in "localhost" geändert wurde, und ich konnte mich schließlich als "Benutzername" anmelden. Für mich ist das aber ziemlich seltsam.

1
Chenxiao

In meinem Fall lag es daran, dass ich auf "SSL: REQUIRE SSL" (in phpmyadmin) geklickt habe. Als ich es auf "REQUIRE NONE" änderte, konnte ich mich einloggen.

1
Ari

Ich hatte ein ähnliches Problem beim Versuch, nach dem Upgrade auf 17.04 eine Verbindung zu einer Maria-Datenbank herzustellen, die unter Ubuntu ausgeführt wird. 

Standardmäßig wurde nur Localhost (127.0.0.1) überwacht.

Damit MySQL/Maria alle verfügbaren Ports und Schnittstellen abhören kann, musste explizit bind-address = 0.0.0.0 angegeben werden. Ich habe diese Zeile am Ende der Datei /etc/mysql/my.cnf hinzugefügt, d. H.

...
[client-server]

# Import all .cnf files from configuration directory

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mariadb.conf.d/
bind-address=0.0.0.0

Dann...

Sudo /etc/init.d/mysql restart 
0
theINtoy

Sie können auch von einem anderen Host aus eine Verbindung herstellen und der anonyme localhost-Benutzer wird umgangen, und Sie können ihn entfernen und Berechtigungen löschen:

mysql -u brian -ppassword -h 'other_Host_than_localhost'
0
obotezat