MySQL-Befehl hängt '@localhost' an den Benutzernamen an

MySQL-Befehl hängt '@localhost' an den Benutzernamen an

Ich komme einfach nicht dahinter.

Ich möchte die Befehlszeile verwenden, um eine Verbindung zu einer MySQL-Datenbank herzustellen, die sich auf einem anderen Server befindet. Ich habe den Benutzernamen und das Passwort für den Benutzer erstellt. Ich habe diesem Benutzer außerdem alle Berechtigungen für diese Datenbank erteilt.

Bei Verwendung des folgenden Befehls mysql -h <hostname> -u <username> -perhalte ich die folgende Fehlermeldung:

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

Das Problem besteht darin, dass der Hostname der aktuellen Maschine immer an den Benutzernamen angehängt wird. Das user@<local_machine_hostname>ist offensichtlich nicht richtig.

Es spielt keine Rolle, was ich eingebe. Wenn ich beispielsweise eingebe:

mysql -h <hostname> -u '<username>'@'<hostname>' -p

Es macht dasselbe, nur heißt es in der Fehlerausgabe:

Access denied for user '<username>@<hostname>'@'<local_machine_hostname>'

Gibt es eine Einstellung in einer Konfigurationsdatei, die dies zulässt? Das ist wirklich ziemlich ärgerlich. Ich muss einen Tikiwiki-Server einrichten, und er kann keine Verbindung herstellen, weil er während des Schritts, in dem Sie MySQL einrichten, immer wieder den Hostnamen des lokalen Computers an den MySQL-Anmeldenamen anhängt.

Antwort1

Die Berechtigungen von MySQL basieren auf dem Host. Wenn Sie den Benutzer CREATE USER (oder GRANT) erstellen, geben Sie einen Hostnamen an. Dies kann „%“ oder „localhost“ oder eine beliebige andere IP-Adresse oder ein beliebiger Hostname sein. Dies ist eine Sicherheitsfunktion. Sie möchten, dass dies geschieht. Der Hostname wird nicht an den Benutzernamen „angehängt“, wenn Ihnen der Zugriff verweigert wird. Jeder wird in einer anderen Spalte der Tabelle mysql.users gespeichert. Wenn Sie sich von Ihrem Computer aus als dieser Benutzer bei MySQL anmelden möchten, müssen Sie diesem Benutzer Zugriff von Ihrem Computer aus gewähren …

Von demMySQL-Dokumente zu CREATE USER:

Jedes Konto wird im gleichen Format wie für die GRANT-Anweisung benannt, z. B. „jeffrey“@„localhost“. Wenn Sie nur den Benutzernamenteil des Kontonamens angeben, wird ein Hostnamenteil von „%“ verwendet. Weitere Informationen zum Angeben von Kontonamen finden Sie in Abschnitt 12.4.1.3, „GRANT-Syntax“.

Antwort2

Gehen Sie zu mysql wworkbannch und geben Sie den Code ein

ALTER USER ALTER USER 'root'@'localhost' IDENTIFIZIERT MIT mysql_native_password DURCH '123';

verwandte Informationen