Ich muss auf meinem Mac in MySQL einen Benutzer mit einem sechsstelligen Passwort erstellen. Ich weiß, dass die niedrigste Einstellung in 5.7 nur acht Zeichen erlaubt. Gibt es eine Möglichkeit, das zu umgehen?
Ich gebe CREATE USER 'newsier'@'localhost' IDENTIFIED BY 'special'
ein
Es gibt den Fehler aus
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
Sie verwenden das Plugin password validation . Standardmäßig sind nur 8 Zeichen und längere Kennwörter zulässig. Da der Wert eines Hashes nicht überprüft werden kann, ist @RiggsFolly korrekt, dass das Vorhashing des Kennworts funktioniert.
Wenn Sie jedoch die Optionen ändern möchten, müssen Sie den Wert der Systemvariablen validate_password_length
einstellen. Sie können dies in der Konfigurationsdatei tun oder:
SET GLOBAL validate_password_length=6;
Zuerst melden Sie sich mit mysql -u root -p
an und überprüfen die aktuellen Richtlinienregeln durch:
# SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_dictionary_file | |
| validate_password_length | 5 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+
Dann können Sie die oben genannten Variablen nach Belieben ändern:
# SET GLOBAL validate_password_length = 5;
# SET GLOBAL validate_password_number_count = 0;
# SET GLOBAL validate_password_mixed_case_count = 0;
# SET GLOBAL validate_password_special_char_count = 0;
Schließlich können Sie eine Datenbank und einen Benutzer mit einem einfacheren Kennwort erstellen:
# CREATE DATABASE test1;
# GRANT ALL PRIVILEGES ON test1.* TO [email protected] IDENTIFIED BY "pass1";
# FLUSH PRIVILEGES;
Danach können Sie sich mit mysql -u user1 -p test1
mit dem Passwort pass1
anmelden.
MySQL 5.7+ hat standardmäßig ein Kennwortüberprüfungssystem. Wenn Sie sich nicht strikt an die Richtlinie halten und Ihre eigene zuweisen möchten, deaktivieren Sie einfach die Kennwortüberprüfung und starten Sie den Prozess mysqld neu.
Bearbeiten Sie die Datei my.cnf:
vi /etc/my.cnf
in [mysqld]
validate-password=off
Speichern Sie die Datei und anschließend Neustart den Prozess
Sudo service mysqld restart
or
systemctl restart mysqld
und dann Ändern des Root-Passworts mit den folgenden Anweisungen und befolgen Sie die Schritte, die keine Ausnahme für das Root-Passwort auslösen.
mysql_secure_installation
or
/usr/bin/mysql_secure_installation
Wenn Sie Installation für das erste Mal ausführen und das temporäres Kennwort kennenlernen möchten, suchen Sie das erstmaliges Kennwort :
grep 'temporary password' /var/log/mysqld.log
Teilen Sie mir bitte Ihre Kommentare dazu mit.
Ich glaube, Sie können es umgehen, indem Sie ein vorgehashtes Passwort wie folgt verwenden: -
CREATE USER 'newsier'@'localhost' IDENTIFIED WITH mysql_native_password
AS '*0D3CED9BEC10A777AEC23CCC353A8C08A633045E';
Das bedeutet jedoch, dass Sie special
korrekt hash müssen, bevor ein Kennwort festgelegt wird, für das Sie die Nur-Text-Version von verwenden können.
Sie können das Kennwort "plugin", das zu streng erscheint, vollständig deaktivieren, indem Sie Folgendes ausführen: uninstall plugin validate_password
Wenn Sie es erneut benötigen, können Sie es wieder einschalten: INSTALL PLUGIN validate_password SONAME 'validate_password.so'
Optional können Sie es deaktivieren, Ihr Kennwort festlegen und es erneut aktivieren:
uninstall plugin validate_password;
CREATE USER 'newsier'@'localhost' IDENTIFIED BY 'special';
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
Lesen Sie weiter:
Überprüfen Sie die aktuellen Kennwortrichtlinienregeln mit
SHOW VARIABLES LIKE 'validate_password%';
Legen Sie nun den neuen Wert dieser Variablen fest:
SET GLOBAL validate_password_length = 6 // that you like
SET GLOBAL validate_password_policy = 'LOW'