Ваш пароль не соответствует текущим требованиям политики

Я хочу создать нового пользователя в MySQL с синтаксисом:

create user 'demo'@'localhost' identified by 'password';

Но он возвращает ошибку:

Ваш пароль не соответствует требованиям текущей политики.

Я пробовал много паролей, но они не работают. Как я могу это исправить?

Ответ 1

Из-за вашего пароля. Вы можете увидеть параметры конфигурации проверки пароля с помощью следующего запроса в клиенте MySQL:

SHOW VARIABLES LIKE 'validate_password%';

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

SET GLOBAL validate_password_length = 6;
SET GLOBAL validate_password_number_count = 0;

Вы проверяете документацию MySQL.

Ответ 2

ПРИМЕЧАНИЕ. Это может быть не безопасное решение. Но если вы работаете в тестовой среде, просто нужно быстро исправить ситуацию и даже не заботитесь о настройках безопасности. Это быстрое решение.

То же самое случилось со мной, когда я запустил "mysql_secure_installation" и изменил уровень безопасности пароля на "medium".

Я обошел ошибку, выполнив следующие действия:

mysql -h localhost -u root -p
mysql>uninstall plugin validate_password;

убедитесь, что при необходимости переустановите плагин "validate_password".

Ответ 3

Если вам все равно, что такое политика паролей. Вы можете установить его в LOW, выдав команду mysql:

mysql> SET GLOBAL validate_password_policy=LOW;

Ответ 4

После запуска команды sudo mysql_secure_installation.

  1. Запустите sudo mysql для входа в приглашение mysql.
  2. Запустите этот SELECT user,authentication_string,plugin,host FROM mysql.user; для проверки подлинности root пользователя как плагина auth_socket.
  3. Затем запустите uninstall plugin validate_password; отказаться от привилегий перед запуском этого ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; Не забудьте сменить пароль на надежный пароль.

ПРИМЕЧАНИЕ: ознакомьтесь с этой ссылкой https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-18-04 за дополнительной помощью.

Ответ 5

Для MySQL 8 *

SET GLOBAL validate_password.policy=LOW

Ссылка Ссылка, чтобы объяснить о политике - Нажмите здесь

Ответ 6

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

Чтобы преодолеть эту проблему, я выполнил следующую команду в mysql: SHOW VARIABLES LIKE 'validate_password%', как предложено @JNevill. Мой "validate_password_policy" был установлен в Medium, наряду с другими вещами. Вот скриншот его выполнения: Validate Password Policy

Результат говорит сам за себя. Для действительного пароля (когда политика паролей установлена на средний):

  • Пароль должен быть длиной не менее 8 символов
  • Смешанное число регистров равно 1 (по крайней мере 1 буква маленьким и 1 буква заглавными буквами)
  • Количество номеров 1
  • Минимальное количество специальных символов составляет 1

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

  • Student123 @
  • NINZAcoder $ 100
  • demoPass # 00

Вы можете выбрать любую комбинацию, если она соответствует политике.

Для других "validate_password_policy" вы можете просто посмотреть значения для разных опций и соответственно выбрать свой пароль (я не пробовал для "HIGH").

Ответ 7

Вы должны изменить политику паролей mysql на LOW.

войдите как root

mysql -u root -p

изменить политику

SET GLOBAL validate_password_policy=LOW;

выхода

exit

перезапустите службу MySQL

sudo service mysqld restart

Ответ 8

Шаг 1. Проверьте плагин проверки подлинности по умолчанию.

SHOW VARIABLES LIKE 'default_authentication_plugin';

Шаг 2: уточнение требований к проверке пароля

SHOW VARIABLES LIKE 'validate_password%';

Шаг 3: настройка вашего пользователя с правильными требованиями к паролю

CREATE USER '<your_user>'@'localhost' IDENTIFIED WITH '<your_default_auth_plugin>' BY 'password';

Ответ 9

У меня была та же проблема, и ответ прямо перед вами, помните, когда вы запускали скрипт при установке mysql, как

sudo mysql_secure_installation

где-то вы выбрали, какой тип пароля вы хотели бы выбрать

Существует три уровня политики проверки пароля:

НИЗКАЯ Длина> = 8 СРЕДНЯЯ Длина> = 8, числовые, смешанный регистр и специальные символы STRONG Длина> = 8, числовые, смешанный регистр, специальные символы и файл словаря

Пожалуйста, введите 0 = НИЗКИЙ, 1 = СРЕДНИЙ и 2 = СИЛЬНЫЙ:

Вы должны дать пароль к той же политике

Вот несколько примеров ваших паролей:
для типа 0: abcdabcd
для типа 1: abcd1234
для типа 2: [email protected]

Ответ 10

Проблема в том, что ваш пароль не соответствует правилам проверки пароля. Вы можете просто выполнить следующие шаги, чтобы решить вашу проблему.

Вы можете просто просмотреть матрицу конфигурации проверки пароля, введя код ниже.

mysql-> SHOW VARIABLES LIKE 'validate_password%';

Затем в вашей матрице вы можете найти ниже переменные с соответствующими значениями, и там вы должны проверить validate_password_length, validate_password_number_count и validate_password_policy.

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

SET GLOBAL validate_password_length = 6;

И после этого вам нужно установить validate_password_number_count в 0. Сделайте это, используя приведенный ниже код.

SET GLOBAL validate_password_number_count = 0;

Наконец, вы должны установить validate_password_policy на low. Наличие этого как Medium или High не позволит использовать ваши менее надежные пароли. Установите это в low с помощью кода ниже.

SET GLOBAL validate_password_policy=LOW;

Ответ 11

mysql> создать пользователя 'admin' @'localhost', идентифицированный 'Admin123'; ОШИБКА 1819 (HY000): ваш пароль не удовлетворяет текущим требованиям политики

mysql> удалить плагин validate_password; Запрос ОК, 0 строк затронуты, 1 предупреждение (0,05 сек)

mysql> создать пользователя 'admin' @'localhost', идентифицированный 'admin'; Запрос ОК, 0 строк затронуты (0,05 сек)

Ответ 12

Для Ubuntu 18.04.1 LTS: mysql Ver 14.14 Distrib 5.7.24, Windows 10 1809 (WSL).

Убедитесь, что вы используете root.

Установите validate-password=off в /etc/mysql/mysql.conf.d/mysqld.cnf за /etc/mysql/mysql.conf.d/mysqld.cnf [mysqld]

[mysqld]
#
# * Basic Settings
# * Another Settings
#
validate-password=off

перезапустите службу MySQL.

service mysql restart

Наконец, используя ваш пароль для входа в MySQL

mysql -h localhost -u root -p

Ответ 13

Это сообщение об ошибке не имеет ничего общего с сохраненным паролем в вашей таблице. Это также происходит, если вы печатаете (на консоли SQL)

"выберите пароль ('123456789')"

или если

"Выберите пароль (" A123456789 ")"

или если

"выберите пароль ('A! 123456789')"

Если вы печатаете

"выберите пароль ('A! a123456789')"

тогда это будет работать. Просто используйте большие + маленькие буквы, специальные символы и цифры, чтобы создать свой пароль.

Вы можете отключить эти проверки в my.cnf, но тогда у вас будет угроза безопасности!

в [mysqld] добавить:

validate_password_policy=LOW
validate_password_special_char_count=0
validate_password_length=0
validate_password_mixed_case_count=0
validate_password_number_count=0

Ответ 14

Для пользователей Laravel, имеющих эту проблему с MySQL 8.0.x, добавьте

'modes'=> [
             'ONLY_FULL_GROUP_BY',
             'STRICT_TRANS_TABLES',
             'NO_ZERO_IN_DATE',
             'NO_ZERO_DATE',
             'ERROR_FOR_DIVISION_BY_ZERO',
             'NO_ENGINE_SUBSTITUTION',
            ],

в ваш файл database.php, как показано ниже:

// database.php

    'connections' => [

        'mysql' => [
            'driver'      => 'mysql',
            'host'        => env( 'DB_HOST', '127.0.0.1' ),
            'port'        => env( 'DB_PORT', '3306' ),
            'database'    => env( 'DB_DATABASE', 'forge' ),
            'username'    => env( 'DB_USERNAME', 'forge' ),
            'password'    => env( 'DB_PASSWORD', '' ),
            'unix_socket' => env( 'DB_SOCKET', '' ),
            'charset'     => 'utf8mb4',
            'collation'   => 'utf8mb4_unicode_ci',
            'prefix'      => '',
            'strict'      => true,
            'engine'      => null,
            'modes'       => [
                'ONLY_FULL_GROUP_BY',
                'STRICT_TRANS_TABLES',
                'NO_ZERO_IN_DATE',
                'NO_ZERO_DATE',
                'ERROR_FOR_DIVISION_BY_ZERO',
                'NO_ENGINE_SUBSTITUTION',
            ],
        ],
    ],

Это исправило это для меня.

Ответ 15

Для MySql 8 вы можете использовать следующий скрипт:

SET GLOBAL validate_password.LENGTH = 4;
SET GLOBAL validate_password.policy = 0;
SET GLOBAL validate_password.mixed_case_count = 0;
SET GLOBAL validate_password.number_count = 0;
SET GLOBAL validate_password.special_char_count = 0;
SET GLOBAL validate_password.check_user_name = 0;
ALTER USER 'user'@'localhost' IDENTIFIED BY 'pass';
FLUSH PRIVILEGES;

Ответ 16

у меня не работала новая версия mysqld для ubuntu, пришлось добавить это в /etc/mysql/mysql.conf.d/mysqld.cnf, иначе сервер не запустится (возможно, плагин не загрузился на самое время, когда я просто добавил его без директивы plugin-load-add)

plugin-load-add=validate_password.so
validate_password_policy=LOW
validate_password_length=8
validate_password_mixed_case_count=0
validate_password_number_count=0
validate_password_special_char_count=0