¿Cómo desactivo la validación de contraseña de MySQL?
Parece que sin darme cuenta he cargado el complemento de validación de contraseña en MySQL 5.7. Este complemento parece obligar a todas las contraseñas a cumplir ciertas reglas.
Me gustaría desactivar esto.
Intenté cambiar la variable validar_contraseña_longitud como se sugiere aquí sin éxito.
mysql> SET GLOBAL validate_password_length=4;
Query OK, 0 rows affected (0.00 sec)
mysql> SET PASSWORD FOR 'app' = PASSWORD('abcd');
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
Me gustaría descargar el complemento o neutralizarlo de alguna manera.
Esto es lo que hago para eliminar el complemento de validación de contraseña:
- Inicie sesión en el servidor mysql como root
mysql -h localhost -u root -p
- Ejecute el siguiente comando sql:
uninstall plugin validate_password;
- Si la última línea no funciona (nueva versión de MySQL), debe ejecutar
UNINSTALL COMPONENT 'file://component_validate_password';
No recomendaría esta solución para un sistema de producción. Utilicé esta solución en una instancia local de MySQL únicamente con fines de desarrollo.
Para mysql 8.0, el comando para deshabilitar el componente de validación de contraseña es:
UNINSTALL COMPONENT 'file://component_validate_password';
Para volver a instalarlo, el comando es:
INSTALL COMPONENT 'file://component_validate_password';
Si solo desea cambiar la política del complemento de validación de contraseña:
SET GLOBAL validate_password.policy = 0; # For LOW
SET GLOBAL validate_password.policy = 1; # For MEDIUM
SET GLOBAL validate_password.policy = 2; # For HIGH
Basándose en la respuesta de Sharfi, edite el archivo /etc/my.cnf y agregue solo esta línea:
validate_password_policy=LOW
Eso debería neutralizar suficientemente la validación solicitada por el OP. Probablemente querrás reiniciar mysqld después de este cambio. Dependiendo de su sistema operativo, se vería así:
sudo service mysqld restart
validar_contraseña_policy toma los valores 0, 1 o 2 o las palabras BAJO, MEDIO y FUERTE que corresponden a esos números. El valor predeterminado es MEDIO (1), que requiere que las contraseñas contengan al menos una letra mayúscula, una letra minúscula, un dígito y un carácter especial, y que la longitud total de la contraseña sea de al menos 8 caracteres. Cambiar a BAJO como sugiero aquí solo verificará la longitud, que si no se ha cambiado a través de otros parámetros verificará una longitud de 8. Si también desea acortar ese límite de longitud, también puede agregar validar_contraseña_longitud a el archivo my.cnf.
Para obtener más información sobre los niveles y detalles, consulte el documento mysql .
Para MySQL 8, la propiedad cambió de "validate_password_policy" a "validate_password.policy". Consulte el documento mysql actualizado para obtener la información más reciente.
Para responder a su pregunta: ¿Cómo desactivo la validación de contraseña de MySQL?
Respuesta corta: puedes reducir la complejidad.
Inicie sesión en Mysql Client como root.
set global validate_password.policy = LOW;
set global validate_password.length = 2;
set global validate_password.mixed_case_count = 0;
set global validate_password.number_count = 0;
set global validate_password.special_char_count = 0;
Proceder concreate user ...