Поиск по сайту:

Исправлено — MySQL ОШИБКА 1819 (HY000): ваш пароль не соответствует текущим требованиям политики.


Как вы могли заметить, вам будет предложено включить компонент VALIDATE PASSWORD при настройке пароля для root-пользователя MySQL. Если этот параметр включен, компонент «Проверка пароля» автоматически проверит надежность данного пароля и заставит пользователей устанавливать только те пароли, которые достаточно безопасны. Если вы укажете слабый пароль, вы столкнетесь с такой ошибкой: ОШИБКА 1819 (HY000): Ваш пароль не соответствует текущим требованиям политики.

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

Позвольте мне показать вам пример. Я вхожу на сервер MySQL как пользователь root, используя команду:

mysql -u root -p

Создайте пользователя базы данных со слабым паролем:

mysql> create user 'ostechnix'@'localhost' identified by 'mypassword';

И я сталкиваюсь со следующей ошибкой:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

ОШИБКА 1819 (HY000): Ваш пароль не соответствует текущим требованиям политики.

Видеть? Компонент Проверить пароль не позволяет мне создать пользователя со слабым паролем (т. е. в данном случае mypassword).

Вы будете получать эту ошибку до тех пор, пока пароль не будет соответствовать требованиям текущей политики паролей или пока вы не отключите компонент Проверка пароля. Мы увидим, как это сделать, в следующем разделе.

Исправлено — MySQL ОШИБКА 1819 (HY000): ваш пароль не соответствует текущим требованиям политики.

При включении плагина Validate Password применяется три уровня политики проверки пароля:

  • LOW Длина >= 8 символов.
  • MEDIUM Длина >= 8, цифры, смешанный регистр и специальные символы.
  • STRONG Длина >= 8, цифры, смешанный регистр, специальные символы и файл словаря.

В зависимости от этих уровней политики вам необходимо установить соответствующий пароль. Например, если для политики проверки пароля установлено значение «Средний», необходимо установить пароль, содержащий не менее 8 символов, включая цифры, строчные, прописные и специальные символы.

Сначала нам нужно найти текущий уровень политики паролей. Для этого выполните следующую команду, чтобы отобразить системные переменные плагина проверки пароля:

mysql> SHOW VARIABLES LIKE 'validate_password%';

Пример вывода:

+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password.check_user_name    | ON     |
| 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.09 sec)

Показать политику проверки пароля в MySQL

Как видите, текущий уровень пароля — Средний. Таким образом, наш пароль должен состоять из 8 символов и содержать цифры, смешанный регистр и специальные символы.

Я собираюсь установить этот пароль — Password123#@! с помощью команды:

mysql> create user 'ostechnix'@'localhost' identified by 'Password123#@!';
Query OK, 0 rows affected (0.36 sec)

Создайте пользователя базы данных в MySQL

Видеть? Теперь это работает! Итак, чтобы исправить ошибку «ERROR 1819 (HY000)...», вам необходимо ввести пароль в соответствии с текущей политикой проверки пароля.

Изменить политику проверки пароля в MySQL

Вы также можете решить проблему «ОШИБКА 1819 (HY000)...», настроив политику паролей более низкого уровня.

Для этого выполните следующую команду из командной строки MySQL:

mysql> SET GLOBAL validate_password.policy = 0;

Или,

mysql> SET GLOBAL validate_password.policy=LOW;

Затем проверьте, не была ли изменена политика проверки пароля на низкую:

mysql> SHOW VARIABLES LIKE 'validate_password%';

Пример вывода:

+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password.check_user_name    | ON    |
| validate_password.dictionary_file    |       |
| validate_password.length             | 8     |
| validate_password.mixed_case_count   | 1     |
| validate_password.number_count       | 1     |
| validate_password.policy             | LOW   |
| validate_password.special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.00 sec)

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

mysql> create user 'senthil'@'localhost' identified by 'password';

Изменить политику проверки пароля в MySQL

Чтобы вернуться к политике уровня MEDIUM, просто запустите эту команду из командной строки MySQL:

mysql> SET GLOBAL validate_password.policy=MEDIUM;

Если политика паролей не изменилась, выйдите из командной строки MySQL и перезапустите службу MySQL из окна терминала:

sudo systemctl restart mysql

Теперь это должно работать.

Внимание! Один из наших читателей заметил, что в следующей команде есть опечатка:

mysql> SET GLOBAL validate_password.policy=LOW;

Должен быть:

mysql> SET GLOBAL validate_password_policy=LOW;

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

Отключить политику проверки паролей

Если вы хотите создавать пользователей со слабым паролем, просто отключите компонент Проверить пароль и снова включите его после создания пользователей.

Войдите на сервер MySQL:

mysql -u root -p

Чтобы временно отключить компонент «Проверка пароля», выполните следующую команду из командной строки MySQL:

mysql> UNINSTALL COMPONENT "file://component_validate_password";

Создайте пользователей с любым паролем по вашему выбору:

mysql> create user 'kumar'@'localhost' identified by '123456';

Наконец, включите компонент «Проверка пароля»:

mysql> INSTALL COMPONENT "file://component_validate_password";

Временно отключите политику проверки паролей в MySQL

Лично я не рекомендую менять политику на более низкий уровень или отключать политику паролей. Независимо от того, являетесь ли вы пользователем базы данных или обычным пользователем, всегда используйте надежный пароль, содержащий более 8 символов, включая цифры, символы смешанного регистра и пробельные символы.

Заключение

В этом руководстве мы узнали об одной из распространенных ошибок MySQL — ОШИБКА 1819 (HY000): Ваш пароль не соответствует текущим требованиям политики и о том, как ее исправить в Linux. Мы также узнали, как отключить политику паролей, чтобы в некоторых случаях разрешать использование слабых паролей. Лично я рекомендую вам использовать надежный пароль.

Связанное чтение:

  • Установить Apache, MySQL, PHP (стек LAMP) в Ubuntu 20.04 LTS
  • Установить Nginx, MySQL, PHP (стек LEMP) в Ubuntu 20.04 LTS