Як вимкнути перевірку пароля mysql?


153

Здається, що я, можливо, ненароком завантажив плагін перевірки пароля в MySQL 5.7. Цей плагін, здається, змушує всі паролі відповідати певним правилам.

Я б хотів це відключити.

Я спробував змінити змінну validate_password_length, як пропонується тут, безрезультатно.

mysql> SET GLOBAL validate_password_length=4;
Query OK, 0 rows affected (0.00 sec)

mysql> SET PASSWORD FOR 'app' = PASSWORD('abcd');
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

Я хотів би або вивантажити плагін, або як-небудь створити його.


9
Ви намагалися змінити налаштування політики? SET GLOBAL validate_password_policy=LOW;
Рікі

1
SET GLOBAL validate_password.policy=LOW;
belgacea

Відповіді:


430

Ось що я роблю, щоб видалити підтверджений плагін пароля:

  1. Увійдіть на сервер mysql як root mysql -h localhost -u root -p
  2. Запустіть таку команду sql: uninstall plugin validate_password;
  3. Якщо останній рядок не працює (новий mysql реліз), слід виконати UNINSTALL COMPONENT 'file://component_validate_password';

Я б не рекомендував це рішення для виробничої системи. Я використовував це рішення в локальному екземплярі mysql лише для цілей розвитку.


18
щоб знову ввімкнути його, скористайтеся такою командою: INSTALL PLUGIN validate_password SONAME 'validate_password.so';
vchrizz

8
Щоб видалити плагін, вам потрібно буде встановити захищений пароль хоча б раз через grep 'password' /var/log/mysqld.log | tail -1і потім /usr/bin/mysql_secure_installation. Після цього ви можете запустити команди з srayhunter вгорі, а потім запустіть, mysqladmin -u root -p'oldpassword' password newpassщоб використовувати будь-який пароль, який ви хочете.
specialk1st

2
Плагін викликається cracklib_password_checkв поточному MariaDB.
czerny

27
Примітка. У MySQL 8.0.4 плагін validate_password був повторно доповнений як компонент validate_password. Замість запиту №2 вище, запустіть:UNINSTALL COMPONENT 'file://component_validate_password';
Aaron Cicali

4
mysql> SET GLOBAL validate_password_policy = 0;
JREAM

41

Я використовую MySQL v 8.0.12 і командою для відключення компонента перевірки пароля є:

UNINSTALL COMPONENT 'file://component_validate_password';

Щоб знову встановити його, команда:

INSTALL COMPONENT 'file://component_validate_password';

Якщо ви просто хочете змінити політику додатка перевірки пароля:

SET GLOBAL validate_password.policy = 0;   // For LOW
SET GLOBAL validate_password.policy = 1;   // For MEDIUM
SET GLOBAL validate_password.policy = 2;   // For HIGH

34

Спираючись на відповідь від Sharfi, відредагуйте файл /etc/my.cnf і додайте лише цей один рядок:

validate_password_policy=LOW

Це має достатньо спричинити валідацію, як вимагає ОП. Ймовірно, ви захочете перезапустити mysqld після цієї зміни. Залежно від вашої ОС це виглядатиме приблизно так:

sudo service mysqld restart

validate_password_policy приймає значення 0, 1 або 2 або слова LOW, MEDIUM та STRONG, які відповідають цим числам. За замовчуванням - MEDIUM (1), який вимагає, щоб паролі містили принаймні одну верхню літеру, одну малу літеру, одну цифру та один спеціальний символ, а загальна довжина пароля - не менше 8 символів. Якщо змінити LOW, як я пропоную тут, тоді перевірятиметься лише довжина, яка, якщо вона не була змінена через інші параметри, перевірятиме довжину 8. Якщо ви хочете скоротити і цю межу, ви також можете додати validate_password_length в файл my.cnf

Більш детальну інформацію про рівні та деталі див. У програмі mysql .


Для MySQL 8 властивість змінилося з "validate_password_policy" на "validate_password.policy". Дивіться оновлений документ mysql для останньої інформації.


6
Якщо вам потрібна лише тимчасова зміна, щоб дозволити встановити єдиний пароль, ви можете використовуватиSET GLOBAL validate_password_policy=LOW;
Rikki

1
Це краще рішення, ніж видалення самого модуля.
Mrugesh Mistry

2
mysql: невідома змінна 'validate_password_policy = LOW'
Amalgovinus

2
Схоже, ім'я змінної змінилося в останньому MySQL. @Amalgovinus, спробуйте скористатися назвою змінної "validate_password.policy" замість цього і перевірте, чи працює це для вас. І якщо це станеться, я оновлю свою відповідь.
ktbos

6

Щоб вимкнути перевірку паролів у mariadb-10.1.24 (Fedora 24), я повинен був прокоментувати рядок у файлі /etc/my.cnf.d/cracklib_password_check.cnf :

;plugin-load-add=cracklib_password_check.so

потім перезапустіть сервіс mariadb:

systemctl restart mariadb.service

4

Ви можете налаштувати це в файлі конфігурації mysql відкритим /etc/my.cnfфайлом. У цьому файлі всі рядки, які налаштовують політику паролів, роблять такі, що коментуються як

#validate-password=FORCE_PLUS_PERMANENT
#validate_password_length=10
#validate_password_mixed_case_count=1
#validate_password_number_count=1
#validate_password_policy=MEDIUM

Відменте коментар та змініть значення властивостей, які ви хочете змінити.


2

Якщо ви хочете зробити винятки, ви можете застосувати наступний "хак". Він вимагає від користувача DELETEта INSERTпривілей для mysql.pluginсистемної таблиці.

uninstall plugin validate_password;
SET PASSWORD FOR 'app' = PASSWORD('abcd');
INSTALL PLUGIN validate_password SONAME 'validate_password.so';

Відмова від безпеки: Поміркуйте, чому ви скорочуєте пароль чи простіше, і, можливо, подумайте про заміну його на складніший. Однак я розумію, що "це 3:00 і просто потрібно працювати" моменти, просто переконайтеся, що ви не будуєте систему хакерів, щоб не потрапити на вас,


2

Далі до відповіді від ktbos:

Я змінив файл mysqld.cnf, і mysql не вдалося запустити. Виявилося, що я модифікував неправильний файл!

Тому переконайтеся, що файл, який ви змінюєте, містить теги сегмента, такі як [mysqld_safe] та [mysqld]. Під останнім я зробив, як було запропоновано, і додав рядок:

validate_password_policy=LOW

Це прекрасно працювало, щоб вирішити мою проблему не вимагати спеціальних символів у паролі.


1

Видалити:

mysql> uninstall plugin validate_password;

Видалений плагін не відображається show plugins;

Встановити:

mysql> install plugin validate_password SONAME 'validate_password.so';

Вимкнено за конфігурацією:

[mysqld]
validate_password = OFF

Плагін можна відключити за допомогою конфігурації, лише якщо встановлений.


0

У мене виникли проблеми з Ubuntu 18.04 на Mysql. Коли мені потрібно було створити нового користувача, політика завжди була високою.

Те, як я зрозумів, як відключити майбутніх колег, які приїжджають розслідувати, було встановлено на низькому рівні.

Увійдіть на сервер mysql як root

mysql -h localhost -u root -p

Встановіть новий тип перевірки

SET GLOBAL validate_password_policy=0; //For Low

Перезапустіть mysql

sudo service mysql restart

1
Ви повинні написати цю команду "SET ..." в оболонку mysql. Не бити шкаралупу.
kodmanyagha

0

У деяких установках ви не можете виконати цю команду, поки не скинете пароль root. Ви не можете скинути кореневий пароль, поки не виконаєте цю команду. Класичний ловець-22.

Одне рішення, про яке не відповідають інші відповіді, - тимчасово відключити плагін через конфігурацію mysql. У будь-якому my.cnf, в [mysqld]розділі, додайте:

skip-validate_password=1

та перезавантажте сервер. Змініть пароль і встановіть значення назад на 0, і знову перезапустіть.


це не працює. Чи можете ви згадати, до якої версії mysql це стосується?
Дейв Дога Оз

0

Для довідок та майбутнього слід прочитати документ тут https://dev.mysql.com/doc/mysql-secure-deployment-guide/5.7/en/secure-deployment-password-validation.html

Потім слід відредагувати mysqld.cnfфайл, наприклад:

vim /etc/mysql/mysql.conf.d/mysqld.cnf

Потім додайте до частини [mysqld] наступне:

plugin-load-add=validate_password.so
validate_password_policy=LOW

В основному, якщо ви редагуєте за замовчуванням, це виглядатиме так:

[mysqld]
#
# * Basic Settings
#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
plugin-load-add=validate_password.so
validate_password_policy=LOW

Потім ви можете перезапустити:

systemctl restart mysql

Якщо ви забудете plugin-load-add=validate_password.soдеталь, ви отримаєте помилку при перезапуску.

Насолоджуйтесь!


-1

Для mysql 8.0.7, перейдіть до каталогу mysql та використовуйте:

sudo bin/mysql_secure_installation

для налаштування параметра пароля.


-2
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'organizer'@'localhost'  WITH GRANT OPTION;

CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'organizer'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

не потрібно зупиняти / запускати mysql

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.