Как создать пароль с шестью символами в 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

Ответ 1

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

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

SET GLOBAL validate_password_length=6;

Ответ 2

Сначала вы входите в систему с помощью 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

Ответ 3

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

Изменить файл my.cnf:

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

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

Ответ 4

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

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

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

Ответ 5

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

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

Ответ 6

Проверить действующие правила политики паролей на

SHOW VARIABLES LIKE 'validate_password%';

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

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

Ответ 7

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

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