Решение проблемы в MySQL — ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

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

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

Исходные данные: Oracle MySQL 5.7.21;
Задача: Разрешить проблему с ошибкой ERROR 1819 (HY000): Your password does not satisfy the current policy requirements;

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

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

# 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.00 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.00 sec)

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

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

mysql> SET GLOBAL validate_password_special_char_count = 0;
Query OK, 0 rows affected (0.00 sec)

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

mysql> CREATE USER 'test1'@'localhost' IDENTIFIED BY 'ei7veeChu4bo';
Query OK, 0 rows affected (0.00 sec)

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

[mysqld]
validate_password_special_char_count=0

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

[mysqld]
validate-password=FORCE_PLUS_PERMANENT

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

mysql> UNINSTALL PLUGIN validate_password;

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

mysql> INSTALL PLUGIN validate_password SONAME 'validate_password.so';

На этом все, до скорых встреч. Если у Вас возникли вопросы или Вы хотите чтобы я помог Вам, то Вы всегда можете связаться со мной разными доступными способами.


21
Оставить комментарий

avatar
1000
18 Цепочка комментария
3 Ответы по цепочке
1 Последователи
 
Популярнейший комментарий
Цепочка актуального комментария
17 Авторы комментариев
AlexalexМихаилВиталийСветлана Авторы недавних комментариев

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

  Подписаться  
Уведомление о
Baha
Гость
Baha

Спасибо помогло!

Евгений
Гость
Евгений

Спасибо.

Анонимно
Гость
Анонимно

Thanks a lot!

Анонимно
Гость
Анонимно

Респект

Lenochka
Гость
Lenochka

Спасибо большое! Выручили!

Айнур
Гость
Айнур

спасибо!

VANQ
Гость
VANQ

Спасибо за информацию!

Khabib`
Гость
Khabib`

спасибо огромное

Boris
Гость
Boris

Вы вкурсе, что вы крутой чувак вообще?

Роман
Гость

вау спасибо админу успехов тебе

VooVoo
Гость
VooVoo

Вот супер, текста на страницу, а все что надо есть!
Спасибо.

Арман
Гость
Арман

НЕ ПОМОГЛО(((

Штефан
Гость

Спасибо большое, Михаил! С Вашей помощью решил проблему! Удачи!

Uzbek
Гость
Uzbek

Спасибо чувак, помогло, дай бог тебе здоровье

Светлана
Гость
Светлана

Хочу пароль поставить два знака, не даёт, ставит в любом случае 3. Пришлось UNINSTALL . Ваша статья самая понятная на эту тему, спасибо. ))

Виталий
Гость
Виталий

Странные дела.
Команда : SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE ‘validate%’;
Выдает Empty set.
А SHOW GLOBAL VARIABLES LIKE ‘validate_password%’;
выдает таблицу со значениями

alex
Гость
alex

Большое-еее спасибо!

Alex
Гость
Alex

Спасибо огромное! Долго мучился с данной ошибкой mySQL…