Cómo crear una contraseña de seis caracteres en MySQL 5.7
database mysql-5.7 (7)
Necesito crear un usuario con una contraseña de seis caracteres en el nuevo MySQL en mi mac. Sé que la configuración más baja en 5.7 permite solo ocho caracteres. ¿Hay alguna manera de ir alrededor de eso?
CREATE USER ''newsier''@''localhost'' IDENTIFIED BY ''special''
Produce el error
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
Creo que puedes redondearlo usando una contraseña pre-hash como esta:
CREATE USER ''newsier''@''localhost'' IDENTIFIED WITH mysql_native_password
AS ''*0D3CED9BEC10A777AEC23CCC353A8C08A633045E'';
Pero eso sí significa que debe hacer un hash special
correctamente antes de que esto realmente establezca una contraseña que luego puede usar la versión de texto simple.
Es posible desactivar por completo el "complemento" de contraseña que parece demasiado estricto ejecutando lo siguiente: uninstall plugin validate_password
Si lo necesita de nuevo, puede volver a activarlo a través de: INSTALL PLUGIN validate_password SONAME ''validate_password.so''
Opcionalmente, puede desactivarlo, configurar su contraseña y volver a habilitarla:
uninstall plugin validate_password;
CREATE USER ''newsier''@''localhost'' IDENTIFIED BY ''special'';
INSTALL PLUGIN validate_password SONAME ''validate_password.so'';
Otras lecturas:
Está utilizando el complemento de validación de contraseña . Por defecto solo permite 8 caracteres y contraseñas más largas. Debido a que no puede verificar el valor de un hash, @RiggsFolly tiene razón en que el hash previo de la contraseña funcionará.
Sin embargo, si desea cambiar las opciones , deberá establecer el valor de la variable de sistema validate_password_length
. Puedes hacer esto en el archivo de configuración o:
SET GLOBAL validate_password_length=6;
Esto podría ayudar:
GRANT ALL ON wordpress.* TO ''user''@''localhost'' IDENTIFIED WITH mysql_native_password AS''yourpassword'';
Primero inicie sesión con mysql -u root -p
y verifique las reglas de la política actual mediante:
# 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 |
+--------------------------------------+--------+
Luego puedes cambiar cualquiera de las variables anteriores a tu voluntad:
# 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;
Finalmente, puede crear una base de datos y un usuario que acceda a ella con una contraseña más simple:
# CREATE DATABASE test1;
# GRANT ALL PRIVILEGES ON test1.* TO user1@localhost IDENTIFIED BY "pass1";
# FLUSH PRIVILEGES;
Después de eso, puede iniciar sesión con mysql -u user1 -p test1
utilizando la contraseña pass1
Verifique las reglas de la política de contraseña actual por
SHOW VARIABLES LIKE ''validate_password%'';
Ahora establece el nuevo valor de esas variables:
SET GLOBAL validate_password_length = 6 // that you like
SET GLOBAL validate_password_policy = ''LOW''
MySQL 5.7+ por defecto tiene un sistema de validación de contraseña . En caso de que no quiera seguir estrictamente la política y necesite asignar una propia, desactive la validación de la contraseña y reinicie el proceso mysqld .
Editar archivo my.cnf :
vi /etc/my.cnf
en [mysqld]
validate-password=off
Guarde el archivo y luego reinicie el proceso
sudo service mysqld restart
or
systemctl restart mysqld
y luego cambie la contraseña de root usando lo siguiente y siga los pasos que no generará excepciones para la contraseña de root.
mysql_secure_installation
or
/usr/bin/mysql_secure_installation
Si está realizando la instalación por primera vez y desea conocer la contraseña temporal , use lo siguiente para encontrar la contraseña por primera vez :
grep ''temporary password'' /var/log/mysqld.log
Déjame saber tus comentarios sobre el mismo, en el cuadro de comentarios a continuación.