Ich versuche, den MySQL-Client mit einem MySQL-Server zu verbinden, ohne dass das Kennwort interaktiv angegeben werden muss. Schritte gemacht:
1) Erstellen Sie zuerst eine mylogin.cnf-Datei
$ mysql_config_editor set --user=<user> --password --host=<host>
Enter password:
2) Datei erfolgreich erstellt:
$ ls -la .mylogin.cnf
-rw-------. 1 urmt urmt 136 Dec 19 11:01 .mylogin.cnf
$ mysql_config_editor print --all
[client]
user = <user>
password = *****
host = <host>
3) Stellen Sie eine Verbindung mit dem MySQL-Client her
$ mysql <dbname>
ERROR 1045 (28000): Access denied for user '<user>'@'<host>' (using password: NO)
Gibt es irgendwo einen Standardwert / eine Standardkonfiguration, durch die der Client das Kennwort in mylogin.cnf ignoriert? Die Benutzer- und Host-Eigenschaften wurden korrekt aus der Datei gelesen.
Ich kann eine gute Verbindung herstellen, wenn ich das Passwort in der Befehlszeile eingebe:
$ mysql -p <dbname>
Enter password:
Reading table information...
...
mysql>
Die MySQL-Client-Version ist 5.6.22, die MySQL-Server-Version ist 5.6.22, beide unter Oracle Linux 6. Client und Server befinden sich auf verschiedenen Hosts.
Vielen Dank
-pyour_pass
oder--password=your_pass
-Option in der Befehlszeile (...). Dies ist praktisch, aber unsicher ."Verwenden Sie den folgenden Befehl, um zuerst den Anmeldepfad festzulegen
Verwenden Sie dann den folgenden Befehl, um sich bei MySQL anzumelden
Hilfe zu den Optionen für den MySQL-Anmeldepfad finden Sie unter
quelle
Ich hatte das gleiche Problem wie OP, aber die Antworten in diesem Thread haben mich verwirrt. Vinay Mandalas Link hat tatsächlich für mich funktioniert. Aus Gründen der Klarheit hier erneut veröffentlicht.
Mein Problem:
Es zeigt, dass
mysql_config_editor
Sonderzeichen im Passwort nicht richtig behandelt werden.Lösung:
Wenn
mysql_config_editor
Sie zur Eingabe des Kennworts aufgefordert werden, stellen Sie sicher, dass Sie das Kennwort in doppelte Anführungszeichen (") setzen . Anschließend können Sie sich problemlos anmelden.quelle
Ich habe diesen Fehler erhalten, außer es stand (mit Passwort: JA)
Der von Giovanni erwähnte Grund war ein "#" im Passwort. Ich habe festgestellt, dass eine Problemumgehung darin besteht, Anführungszeichen um Ihr Kennwort einzufügen, wenn Sie dazu aufgefordert werden. Die gleiche Einschränkung besteht bei Klartextkennwörtern, die .my.cnf verwenden.
quelle
Die Nawaz-Antwort ist richtig. Ich habe wenig hinzuzufügen. Ich schlage vor, dass Sie mit der Umgebungsvariablen MYSQL_TEST_LOGIN_FILE einige Versuche unternehmen, eine neue Konfigurationsdatei zu erstellen, nur für den Fall, dass die Standarddatei beschädigt ist. Verwenden Sie
--no-defaults
diese Option auch , um.cnf
Dateien zu überspringen . Wenn das Passwort das Zeichen enthält#
,mysql login-path
funktioniert es nicht.quelle
mysql
Befehl exec istmysql
? Wenn nicht, ändern Sie den Besitzer vonmylogin.cnf
und es sollte funktionieren :)Ich stoße auf ein ähnliches Problem wie das Originalplakat. Ich vermute, es hat mit Zeichen im Passwort zu tun, die nicht richtig verschlüsselt / entschlüsselt werden.
Um dies zu bestätigen, ändern Sie das Passwort in etwas Einfaches und prüfen Sie, ob dieses Problem behoben ist.
quelle
Ich hatte dieses Problem mit einem Shell-Skript. Mein Skript hat den $ HOME-Wert geändert und dies hat dazu geführt, dass der --login-path = *** scheinbar ignoriert wird. Als ich aufhörte, den Wert von $ HOME zu ändern, fing es an zu funktionieren.
quelle
HINWEIS Wenn Sie versuchen, das
path
unter Linux auszuführen,root
können Sie es nicht einfach verwendensudo
. Sie müssen sich als Root- IE anmeldenAuch wie in anderen Beiträgen hier erwähnt. Sie müssen doppelte Anführungszeichen um Ihr
mysql
Passwort verwenden, wenn es etwas anderes als alphanumerische Zeichen enthält.quelle