Как создать пароль из шести символов в MySQL 5.7

мне нужно создать пользователя с шестизначным паролем в новом MySQL на моем mac. Я знаю, что самая низкая настройка в 5.7 позволяет использовать только восемь символов. Есть ли способ обойти это?

Я набираю CREATE USER 'newsier'@'localhost' IDENTIFIED BY 'special'

выдает ошибку

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

7 ответов


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

однако, если вы хотите изменить параметры, вам нужно будет установить значение . Это можно сделать в файле конфигурации или:

SET GLOBAL validate_password_length=6;

сначала вы входите с mysql -u root -p и проверьте текущие правила политики по:

# SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_dictionary_file    |        |
| validate_password_length             | 5      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+

тогда вы можете изменить любую из вышеперечисленных переменных по своему желанию:

# SET GLOBAL validate_password_length = 5;
# SET GLOBAL validate_password_number_count = 0;
# SET GLOBAL validate_password_mixed_case_count = 0;
# SET GLOBAL validate_password_special_char_count = 0;

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

# CREATE DATABASE test1;
# GRANT ALL PRIVILEGES ON test1.* TO user1@localhost IDENTIFIED BY "pass1";
# FLUSH PRIVILEGES;

после этого вы можете войти с mysql -u user1 -p test1 С помощью пароля pass1


MySQL 5.7+ по умолчанию имеет a система проверки пароля. В случае если вы не хотите идти строго с политикой и нужно назначить свой собственный, то просто отключите проверку пароля и перезагрузка mysqld:

vi /etc/my.cnf

на [mysqld]

validate-password=off

сохраните файл, а затем перезагрузка процесс

sudo service mysqld restart
or
systemctl restart mysqld

и тогда изменить пароль Root используя следующее и следуйте инструкциям, он не будет вызывать исключение для пароля Root.

mysql_secure_installation
or
/usr/bin/mysql_secure_installation

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

 grep 'temporary password' /var/log/mysqld.log

Дайте мне знать ваши комментарии на то же самое, в поле комментариев ниже.


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

CREATE USER 'newsier'@'localhost' IDENTIFIED WITH mysql_native_password
       AS '*0D3CED9BEC10A777AEC23CCC353A8C08A633045E';

но это означает, что вам нужно хэшировать special правильно, прежде чем это будет фактически Установить пароль, который вы можете использовать текстовую версию.


можно полностью отключить пароль "плагин", который кажется слишком строгим, выполнив следующее: uninstall plugin validate_password

Если вам это нужно снова, вы можете включить его обратно через: INSTALL PLUGIN validate_password SONAME 'validate_password.so'

дополнительно, вы можете отключить его, Установить пароль и повторно включить его:

uninstall plugin validate_password;
CREATE USER 'newsier'@'localhost' IDENTIFIED BY 'special';
INSTALL PLUGIN validate_password SONAME 'validate_password.so';

далее чтение:


Проверьте текущие правила политики паролей по

SHOW VARIABLES LIKE 'validate_password%';

теперь установите новое значение этой переменной:

SET GLOBAL validate_password_length = 6 // that you like
SET GLOBAL validate_password_policy = 'LOW'

Это может помочь:

GRANT ALL ON wordpress.* TO 'user'@'localhost' IDENTIFIED WITH mysql_native_password AS'yourpassword';