При создании пользователя MySQL с относительно слабым паролем вы можете столкнуться с ошибкой «MySQL ERROR 1819 (HY000): Your password does not satisfy the current policy requirements».
Технически это не ошибка, а уведомление о том, что вы используете пароль, не соответствующий рекомендованным требованиям политики паролей.
Другими словами, вы используете ненадежный пароль, который можно легко угадать или взломать.
Встроенный механизм безопасности не позволяет пользователям создавать слабые пароли, которые могут сделать вашу базу данных уязвимой.
Ранее мы уже рассматривали настройку паролей:
👥 Как ограничить создание пользователей MySQL с пустым паролем
mysql> create user ‘itisgood’@’localhost’ IDENTIFIED BY ‘mypassword’;
Как решить ошибку MySQL 1819 (HY000) на Linux
База данных MySQL поставляется с подключаемым модулем validate_password, который при включении применяет политику проверки пароля.
Плагин применяет 3 уровня политики проверки пароля.
- LOW: позволяет пользователям устанавливать пароль из 8 или менее символов.
- MEDIUM: позволяет пользователям устанавливать пароль из 8 или менее символов со смешанными регистрами и специальными символами.
- STRONG: позволяет пользователям устанавливать пароль, который имеет все атрибуты пароля среднего уровня с включением файла словаря.
По умолчанию для политики паролей установлено значение MEDIUM.
Вы можете подтвердить уровень политики паролей, выполнив команду:
$ SHOW VARIABLES LIKE 'validate_password%';
Если вы запустите команду и получите пустой набор выходных данных, то плагин еще не включен.
Чтобы включить плагин validate_password, выполните следующие команды.
mysql> select plugin_name, plugin_status from information_schema.plugins where plugin_name like 'validate%'; mysql> install plugin validate_password soname 'validate_password.so';
Чтобы убедиться, что плагин активирован, выполните команду.
mysql> select plugin_name, plugin_status from information_schema.plugins where plugin_name like 'validate%';
Как изменить политику проверки пароля MySQL
Чтобы устранить ошибку MySQL ERROR 1819 (HY000), установите более низкую политику проверки пароля, как показано далее:
mysql> SET GLOBAL validate_password_policy=LOW; или mysql> SET GLOBAL validate_password_policy=0;
$ SHOW VARIABLES LIKE 'validate_password%';
Теперь вы можете продолжить и назначить относительно слабый пароль по своему желанию.
mysql> create user ‘tecmint’@’localhost’ IDENTIFIED BY ‘mypassword’;
mysql> SET GLOBAL validate_password_policy=MEDIUM;
Заключение
Лично я бы не рекомендовал устанавливать политику паролей более низкого уровня по понятным причинам.
Будь то обычный пользователь или пользователь базы данных, рекомендуется всегда устанавливать надежный пароль MySQL, состоящий более чем из 8 символов, включая прописные, строчные, числовые и специальные символы.
Это руководство предназначено для тех, кто хочет знать, как справляться с такой ошибкой, в противном случае рекомендуется всегда устанавливать надежный пароль.