[РЕШЕНО] MySQL — ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

Последнее изменение: 24.12.2019

На вновь установленном сервере с Oracle MySQL 5.7 при создании пользователя может возникнуть ошибка ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

Давайте разберемся откуда она появилась и как её устранить.

Корень проблемы кроется в активированном по умолчанию плагине validate_password которому не нравятся даже такого рода пароли ‘Gi7he9Whugb0’, что довольно странно, ведь пароль достаточно стойкий.

Посмотрим активирован ли плагин:

mysql -u root -p
mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE'validate%';
+-------------------+---------------+
 | PLUGIN_NAME       | PLUGIN_STATUS |
 +-------------------+---------------+
 | validate_password | ACTIVE        |
 +-------------------+---------------+
 1 row in set (0.01 sec)

Как мы видим, плагин активирован. Посмотрим на настройки плагина:

mysql> SHOW GLOBAL VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
 | Variable_name                        | Value  |
 +--------------------------------------+--------+
 | validate_password_check_user_name    | OFF    |
 | validate_password_dictionary_file    |        |
 | validate_password_length             | 8      |
 | validate_password_mixed_case_count   | 1      |
 | validate_password_number_count       | 1      |
 | validate_password_policy             | MEDIUM |
 | validate_password_special_char_count | 1      |
 +--------------------------------------+--------+
 7 rows in set (0.07 sec)

Что же MySQL не понравилось в нашем пароле ?
А не понравилось то, что в соответствии с настройкой validate_password_special_char_count в пароле должен быть хотя бы один спецсимвол, например восклицательный знак (!).

Самым правильным решением будет конечно соблюдение установленных правил при генерации пароля, но если хочется немного их подправить, то давайте сделаем это:

mysql> SET GLOBAL validate_password_special_char_count = 0;

Теперь при создании пользователя проблем возникнуть не должно.

Если Вас устраивает такая политика, то не забудьте добавить в /etc/mysql/my.cnf в секцию [mysqld] настройку validate_password_special_char_count=0

sudo nano /etc/mysql/my.cnf
[mysqld] 
validate_password_special_char_count=0

Если Вы хотите, чтобы никто не смог выгрузить плагин validate_password, то в /etc/mysql/my.cnf в секцию [mysqld] нужно добавить настройку validate-password=FORCE_PLUS_PERMANENT

sudo nano /etc/mysql/my.cnf
[mysqld] 
validate-password=FORCE_PLUS_PERMANENT

Если Вы хотите отключить плагин на совсем, то набираем следующее:

mysql> UNINSTALL PLUGIN validate_password;

Для повторной активации плагина выполните:

mysql> INSTALL PLUGIN validate_password SONAME 'validate_password.so';
Если есть вопросы, то пишем в комментариях.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Отправить ответ

avatar

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

  Подписаться  
Уведомление о
Меню
WhatsApp Задайте вопрос

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: