MySQL 1819: Your password does not satisfy the current policy requirements
Ошибка 1819 значит, что в MySQL включена проверка паролей и новый пароль её не прошёл. Посмотрите требования и придумайте пароль, который им соответствует.
Содержание 8
Как выглядит ошибка
ERROR 1819 (HY000): Your password does not satisfy the current policy requirementsОна появляется в ответ на команды, которые задают пароль: CREATE USER и ALTER USER с IDENTIFIED BY.
Почему так
В MySQL есть компонент проверки паролей validate_password. Программа mysql_secure_installation предлагает его включить и выбрать уровень строгости. Если вы согласились, каждый новый пароль проверяется.
| Уровень | Что требуется |
|---|---|
| LOW | Не короче 8 символов |
| MEDIUM | Не короче 8 символов, хотя бы одна цифра, одна большая и одна маленькая буква, один знак вроде ! или # |
| STRONG | То же, что MEDIUM, и пароль не должен содержать слов из словаря, если файл словаря задан |
Кроме того, пароль не должен совпадать с именем пользователя или с ним же, записанным задом наперёд.
Шаг 1. Посмотрите требования на своём сервере
Войдите в базу:
sudo mysqlЕсли система спросит пароль, введите пароль своего пользователя на сервере, а не пароль базы. Символы при вводе не видны — так и должно быть, просто наберите пароль и нажмите Enter. Строка ввода сменится на mysql> у MySQL или на MariaDB [(none)]> у MariaDB: теперь можно вводить команды для базы. Каждая команда заканчивается точкой с запятой. Выйти обратно — команда exit.
и выполните:
SHOW VARIABLES LIKE 'validate_password%';Что значат строки в ответе:
validate_password.length— наименьшая длина пароля, по умолчанию 8.validate_password.policy— уровень: LOW, MEDIUM или STRONG.validate_password.number_count— сколько нужно цифр.validate_password.mixed_case_count— сколько нужно больших и сколько маленьких букв.validate_password.special_char_count— сколько нужно знаков, которые не буквы и не цифры.
Если команда ничего не вывела (Empty set), компонент не включён — проверьте, не MariaDB ли у вас: раздел ниже.
Шаг 2. Придумайте пароль по требованиям
Возьмите длинный пароль из генератора паролей и проверьте, что в нём есть цифра, большая и маленькая буква и знак. Не используйте в пароле одинарную кавычку ' и обратную косую черту \: в команде пароль стоит в одинарных кавычках, и эти символы его испортят. Затем повторите команду с новым паролем, например:
ALTER USER 'ivan'@'localhost' IDENTIFIED BY 'новый-пароль';Вместо новый-пароль — ваш пароль. Ответ Query OK значит, что пароль принят. Сохраните его в надёжном месте и впишите в настройки сайта.
Не отключайте проверку
Проверка мешает задать пароль, который легко подобрать. Если пароль для сайта не проходит, проще сгенерировать новый, чем ослаблять защиту для всех пользователей базы.
Если у вас MariaDB
В MariaDB из пакетов Ubuntu проверка паролей в файле настроек не включена. Если ошибка 1819 всё же появилась, её включили отдельно — в конце сообщения в скобках будет название модуля проверки. Требования смотрите командой:
SHOW VARIABLES LIKE '%password%';Тексты ошибок и настройки сверены с исходным кодом MySQL 8.0.46 и MariaDB 10.11.14 — эти версии ставятся из пакетов Ubuntu 24.04. В других версиях строки могут немного отличаться.
Источники
- Исходный код MySQL 8.0.46: validate_password_imp.cc — настройки проверки паролей и их значения по умолчанию.
- Исходный код MySQL 8.0.46: mysql_secure_installation.cc — уровни LOW, MEDIUM и STRONG.
- Исходный код MySQL 8.0.46: messages_to_clients.txt — тексты ошибок сервера MySQL.
- Исходный код MariaDB 10.11.14: errmsg-utf8.txt — тексты ошибок сервера MariaDB.
- Пакет MariaDB в Ubuntu 24.04: 50-server.cnf — файл настроек сервера: bind-address, max_allowed_packet.
- Документация MySQL 8.0: проверка паролей — как работает компонент validate_password.
Сверено 10 октября 2026 года.
Что почитать дальше
Проверено и обновлено: 10.10.2026