Исправлено — 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