MySQL-Passworteinschränkungen?

785
JonahHuron

Ich habe MySQL 5.5 auf einer neuen VM installiert, auf der Ubuntu 14 LTS läuft apt-get. Während der Installation habe ich ein Root- Benutzerpasswort festgelegt, das von einem Passwortmanager generiert wird. Nach der Installation konnte ich auf keine Funktionen als MySQL-Root-Benutzer zugreifen:

<user>@<hostname>:~$ mysql -u root -p Enter password: <root user pw set at installation> ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 

Ich dachte, etwas wäre schief gegangen, als ich das Root-Passwort gesetzt hatte

<user>@<hostname>:~$ sudo dpkg-reconfigure mysql-server-5.5 

das root-Passwort zurücksetzen, obwohl ich es auf das exakt gleiche Passwort "zurücksetzt". Ich erhielt weiterhin den gleichen Access deniedFehler.

Dann setze ich das root-Passwort mit derselben Methode erneut auf etwas kürzeres und leicht typisierbares (dh schwaches) Zeichen, das nur alphanumerische Zeichen enthält. Das hat funktioniert! Ich kann jetzt als Root-Benutzer auf MySQL-Funktionen zugreifen.

Der einzige Unterschied scheint die Komplexität des Passworts zu sein. Das ursprüngliche sichere Kennwort bestand aus 18 Zeichen und enthielt Satzzeichen wie ^ \:! Usw. Nur ASCII und keine Leerzeichen.

Hat dieses Passwort gegen eine Regel verstoßen, die MySQL-Passwörter einhalten müssen, entweder in Bezug auf Länge oder Zeichensätze? Ich habe gesucht, und ich habe keine Hinweise auf solche Einschränkungen gefunden, die meiner Meinung nach gut veröffentlicht wären. Wenn nicht das, was hätte das Problem sonst noch haben können?

Vielen Dank!

3
Sie können einfach versuchen, von `127.0.0.1` auf die MySQL-Instanz zuzugreifen, stattdessen mit einer Syntax wie ..............` mysql -u root -p -h 127.0.0.1` und dann Schau was passiert. Möglicherweise ist der `localhost` nicht zulässig, wenn` --skip-name-resol` eingestellt wird oder nur eine explizite Regel hat, dass root nur eine Verbindung vom `127.0.0.1'-Host her zulässt. Pimp Juice IT vor 5 Jahren 0

1 Antwort auf die Frage

0
Todd Walton

Es gibt keine Einschränkungen für MySQL-Passwörter, die von der MySQL-Software auferlegt werden. Die Datenbank kann so lang sein, wie Sie möchten und so komplex, wie Sie möchten. Es gibt jedoch einige Einschränkungen.

Manchmal interpretiert die Shell oder ein Skript oder etwas das Kennwort, bevor es an die Datenbank übergeben wird. Wenn Sonderzeichen vorhanden sind, werden sie möglicherweise entstellt. Wenn Ihr Kennwort beispielsweise "*" lautet und Sie es über die Befehlszeile übergeben haben, interpretiert die Shell dieses als Platzhalterzeichen und füllt eine Reihe von Dateinamen aus. Solche Sonderzeichen müssen möglicherweise mit einem umgekehrten Schrägstrich ("\") gekennzeichnet werden.

Eine weitere Einschränkung: Wenn Ihr Kennwort Nicht-ASCII-Zeichen (beispielsweise Unicode) enthalten sollte, muss die Datenbank, die mit der Datenbank verbunden ist, der Datenbank mitteilen, dass dies kommt. MySQL geht von ASCII aus und muss normalerweise anders mitgeteilt werden.

Ich bin mir nicht sicher, ob einer von ihnen auf Ihre Situation zutrifft. Aber ich dachte mir, ich würde dir auf die gestellte Frage eine Antwort geben.