it-swarm.com.ru

Как создать шестизначный пароль в 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
16
user3703723

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

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

SET GLOBAL validate_password_length=6;
8
miken32

Сначала войдите с помощью 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 [email protected] IDENTIFIED BY "pass1";
# FLUSH PRIVILEGES;

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

36
Alexander Farber

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

Редактировать my.cnf file:

vi /etc/my.cnf

в [mysqld]

validate-password=off

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

Sudo service mysqld restart
or
systemctl restart mysqld

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

mysql_secure_installation
or
/usr/bin/mysql_secure_installation

Если вы выполняете установку для в первый раз и хотите узнать временный пароль , то используйте следующую команду для поиска первого пароля :

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

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

5
Murtaza Kanchwala

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

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

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

3
RiggsFolly

Можно полностью отключить «плагин» для пароля, который кажется слишком строгим, запустив следующее: 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';

Дальнейшее чтение:

3
SeanDowney

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

SHOW VARIABLES LIKE 'validate_password%';

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

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