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