आपका पासवर्ड वर्तमान नीति आवश्यकताओं को पूरा नहीं करता है


148

मैं सिंटैक्स के साथ mysql में एक नया उपयोगकर्ता बनाना चाहता हूं:

create user 'demo'@'localhost' identified by 'password';

लेकिन यह एक त्रुटि देता है:

आपका पासवर्ड वर्तमान नीति आवश्यकताओं को पूरा नहीं करता है।

मैंने कई पासवर्ड आज़माए हैं, लेकिन वे काम नहीं करते हैं। मैं इसे कैसे ठीक करूं?


1
पासवर्ड नीति स्तर कम सेट करें। यहां देखें: dev.mysql.com/doc/refman/5.6/en/…
फ़जरलायगुर

4
पासवर्ड नीति क्या है? आप उन चर की जांच कर सकते हैं जो आपके पासवर्ड सत्यापन मॉड्यूल के लिए सेट किए गए हैंSHOW VARIABLES LIKE 'validate_password%'
JNevill

धन्यवाद! मैंने पासवर्ड नीति स्तर कम सेट किया है और यह काम करता है।
गुयेन

1
मैंने अपनी समस्या को हल कर लियाUNINSTALL COMPONENT 'file://component_validate_password';
princebillyGK

जवाबों:


245

आपके पासवर्ड की वजह से। आप MySQL क्लाइंट में निम्न क्वेरी का उपयोग करके पासवर्ड वेरिफ़ाइड मीट्रिक्स देख सकते हैं :

SHOW VARIABLES LIKE 'validate_password%';

आउटपुट कुछ इस तरह होना चाहिए:

+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password.check_user_name    | ON    |
| validate_password.dictionary_file    |       |
| validate_password.length             | 6     |
| validate_password.mixed_case_count   | 1     |
| validate_password.number_count       | 1     |
| validate_password.policy             | LOW   |
| validate_password.special_char_count | 1     |
+--------------------------------------+-------+

उदाहरण के लिए, आप पासवर्ड नीति स्तर को नीचे सेट कर सकते हैं:

SET GLOBAL validate_password.length = 6;
SET GLOBAL validate_password.number_count = 0;

MySQL प्रलेखन की जाँच करें ।


31
स्वर्ग की खातिर, आपको YouTube के आधिकारिक MySQL प्रलेखन का हवाला देना चाहिए ।
लोर्ने

26
डेवलपमेंट मशीन के लिए पासवर्ड के रूप में 'पासवर्ड' का उपयोग करने के लिए निम्नलिखित कमांड का उपयोग करें:SET GLOBAL validate_password_policy = 0;
महमूदुल हसन शोहग

4
SET GLOBAL validate_password.length = 6; SET GLOBAL validate_password.number_count = 0; अद्यतन !!
बीटिंगबाइट्स

6
यह सिर्फ हैSET GLOBAL validate_password.policy = 0;
iamtodor

1
यह मददगार था क्योंकि इसने वास्तव में मुझे दिखाया कि मेरे 30-चरित्र वाले लंबे पासवर्ड "कमजोर" (कोई विशेष चरित्र) क्यों नहीं थे। मैं विशेष चरित्र की आवश्यकता को दूर करने और न्यूनतम लंबाई 8 से 20 तक बढ़ाने में सक्षम था।
andttweber

68

नोट: यह एक सुरक्षित समाधान नहीं हो सकता है। लेकिन अगर आप एक परीक्षण वातावरण पर काम कर रहे हैं, तो बस एक त्वरित सुधार की आवश्यकता है और सुरक्षा सेटिंग्स की भी परवाह नहीं है। यह एक त्वरित उपाय है।

वही मुद्दा मेरे साथ हुआ जब मैंने "mysql_secure_installation" को चलाया और पासवर्ड सुरक्षा स्तर को 'माध्यम' में संशोधित किया।

मैंने अनुसरण करके त्रुटि को रोक दिया:

mysql -h localhost -u root -p
mysql>uninstall plugin validate_password;

सुनिश्चित करें कि यदि आवश्यक हो तो आप प्लगइन "validate_password" को पुनर्स्थापित करें।


3
भयानक समाधान। आपको उस स्तर को कम करना चाहिए जो आपको सूट करता है, न कि पूरी सुविधा को हटा दें।
लोर्ने

10
पोस्ट करने का शुक्रिया। त्वरित और गंदा तय। ठीक वैसे ही जैसे @kennyut कहता है: सुनिश्चित करें कि आप "
मेंग झाओ

52

यदि आपको परवाह नहीं है कि पासवर्ड नीति क्या है। आप mysql कमांड के नीचे जारी करके इसे कम पर सेट कर सकते हैं:

mysql> SET GLOBAL validate_password_policy=LOW;

8
SET GLOBAL validate_password.policy=LOW;इसके बजाय होना चाहिए
गीतिका


20

कमांड चलाने के बाद sudo mysql_secure_installation

  1. sudo mysqlMysql प्रॉम्प्ट में प्रवेश करने के लिए चलाएँ ।
  2. इस चलाने के SELECT user,authentication_string,plugin,host FROM mysql.user;उपयोगकर्ता के लिए जाँच करने के लिए जड़ प्लगइन के रूप में करने के लिए auth_socket
  3. फिर इसे चलाने uninstall plugin validate_password;से पहले निजीकृत ड्रॉप करने के लिए चलाएं ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';सुनिश्चित करें कि पासवर्ड को एक मजबूत पासवर्ड में बदल दें ।

नोट: इस लिंक की जाँच https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-18-04 अधिक मदद के लिए


11

आपको MySQL पासवर्ड पॉलिसी को LOW में बदलना होगा।

रूट के रूप में लॉगिन करें

mysql -u root -p

नीति बदलें

SET GLOBAL validate_password_policy=LOW;

या

SET GLOBAL validate_password_policy=0;

बाहर जाएं

exit

MySQL सेवा को पुनरारंभ करें

sudo service mysqld restart

आपको MySQL पासवर्ड पॉलिसी को निम्न = 0 / मध्यम = 1 / उच्च = 2 में बदलना होगा।

SET GLOBAL validate_password_policy=0;
SET GLOBAL validate_password_policy=1;    
SET GLOBAL validate_password_policy=2;

8

MySql 8 के लिए आप निम्नलिखित स्क्रिप्ट का उपयोग कर सकते हैं:

SET GLOBAL validate_password.LENGTH = 4;
SET GLOBAL validate_password.policy = 0;
SET GLOBAL validate_password.mixed_case_count = 0;
SET GLOBAL validate_password.number_count = 0;
SET GLOBAL validate_password.special_char_count = 0;
SET GLOBAL validate_password.check_user_name = 0;
ALTER USER 'user'@'localhost' IDENTIFIED BY 'pass';
FLUSH PRIVILEGES;

7

मेरी राय में "validate_password_policy" को "निम्न" पर सेट करना या "मान्य पासवर्ड प्लगइन" की स्थापना रद्द करना सही बात नहीं है। आपको अपने डेटाबेस की सुरक्षा के साथ कभी भी समझौता नहीं करना चाहिए (जब तक कि आपको वास्तव में परवाह न हो)। मैं सोच रहा हूं कि लोग इन विकल्पों का सुझाव क्यों दे रहे हैं जब आप बस एक अच्छा पासवर्ड चुन सकते हैं।

इस समस्या को दूर करने के लिए, मैंने mysql में निम्नलिखित कमांड को अंजाम दिया: SHOW VARIABLES LIKE 'validate_password%' जैसा कि @Jevill द्वारा सुझाया गया है। मेरा "validate_password_policy" अन्य चीजों के साथ, मध्यम पर सेट किया गया था। यहां इसके निष्पादन का स्क्रीनशॉट दिया गया है: पासवर्ड नीति को मान्य करें

परिणाम आत्म व्याख्यात्मक है। मान्य पासवर्ड के लिए (जब पासवर्ड नीति मध्यम पर सेट हो):

  • पासवर्ड कम से कम 8 वर्ण लंबा होना चाहिए
  • मिश्रित केस काउंट 1 है (कम से कम 1 अक्षर छोटे और 1 अक्षर में)
  • संख्या गणना 1 है
  • न्यूनतम विशेष वर्ण गणना 1 है

इसलिए एक वैध पासवर्ड पॉलिसी का पालन करना चाहिए। उपरोक्त नियमों के लिए मान्य पासवर्ड के उदाहरण शायद:

  • Student123 @
  • $ 100 NINZAcoder
  • demoPass # 00

आप किसी भी संयोजन को तब तक चुन सकते हैं जब तक वह नीति को संतुष्ट करता है।

अन्य "validate_password_policy" के लिए आप बस विभिन्न विकल्पों के मान देख सकते हैं और तदनुसार अपना पासवर्ड चुन सकते हैं (मैंने "STRONG" के लिए प्रयास नहीं किया है )।

https://dev.mysql.com/doc/refman/5.6/en/validate-password-options-variables.html


2
यह शीर्ष पासवर्ड नीति के लिए मजबूत है।
स्टीम गेमर

मुझे यह भी समझ में नहीं आता है कि लोग किस चीज validate_password_policyको डाउनग्रेड करने का सुझाव दे रहे हैं LOW। उपयोगकर्ता आवश्यकता को पूरा करने वाले एक मजबूत पासवर्ड को पूरी तरह से बना या उत्पन्न कर सकते हैं। यदि आप सुनिश्चित नहीं हैं कि कैसे करना है, तो उसके लिए एक उपकरण का उपयोग करें। उदाहरण के लिए github.com/joseluisq/rpasswd
joseluisq

3

चरण 1: अपने डिफ़ॉल्ट प्रमाणीकरण प्लगइन की जाँच करें

SHOW VARIABLES LIKE 'default_authentication_plugin';

चरण 2: अपने पासवर्ड सत्यापन की आवश्यकताओं को पूरा करना

SHOW VARIABLES LIKE 'validate_password%';

चरण 3: सही पासवर्ड आवश्यकताओं के साथ अपने उपयोगकर्ता की स्थापना

CREATE USER '<your_user>'@'localhost' IDENTIFIED WITH '<your_default_auth_plugin>' BY 'password';

3

मेरे पास एक ही समस्या थी और उत्तर आपके सामने सही है, याद रखें जब आपने mysql को स्थापित करते समय स्क्रिप्ट को चलाया था

sudo mysql_secure_installation

वहाँ कहीं आपने चुना है कि आप किस पासवर्ड प्रकार को चुनना चाहते हैं

पासवर्ड सत्यापन नीति के तीन स्तर हैं:

कम लंबाई> = 8 औसत लंबाई> = 8, संख्यात्मक, मिश्रित मामला, और विशेष अक्षर STRONG लंबाई> = 8, संख्यात्मक, मिश्रित मामला, विशेष वर्ण और शब्दकोश फ़ाइल

कृपया 0 = LOW, 1 = MED दर्ज करें और 2 = STRONG:

आपको एक ही पॉलिसी का पासवर्ड देना होगा

आपके पासवर्ड के लिए यहां कुछ उदाहरण दिए गए हैं:
टाइप 0 के लिए: abcdabcd
टाइप 1 के लिए: abcd1234
टाइप 2 के लिए:ancd@1234


2

Laravel उपयोगकर्ताओं के लिए MySQL 8.0.x के साथ यह समस्या है, जोड़ें

'modes'=> [
             'ONLY_FULL_GROUP_BY',
             'STRICT_TRANS_TABLES',
             'NO_ZERO_IN_DATE',
             'NO_ZERO_DATE',
             'ERROR_FOR_DIVISION_BY_ZERO',
             'NO_ENGINE_SUBSTITUTION',
            ],

नीचे के रूप में अपने डेटाबेस के लिए। फाइल:

// database.php

    'connections' => [

        'mysql' => [
            'driver'      => 'mysql',
            'host'        => env( 'DB_HOST', '127.0.0.1' ),
            'port'        => env( 'DB_PORT', '3306' ),
            'database'    => env( 'DB_DATABASE', 'forge' ),
            'username'    => env( 'DB_USERNAME', 'forge' ),
            'password'    => env( 'DB_PASSWORD', '' ),
            'unix_socket' => env( 'DB_SOCKET', '' ),
            'charset'     => 'utf8mb4',
            'collation'   => 'utf8mb4_unicode_ci',
            'prefix'      => '',
            'strict'      => true,
            'engine'      => null,
            'modes'       => [
                'ONLY_FULL_GROUP_BY',
                'STRICT_TRANS_TABLES',
                'NO_ZERO_IN_DATE',
                'NO_ZERO_DATE',
                'ERROR_FOR_DIVISION_BY_ZERO',
                'NO_ENGINE_SUBSTITUTION',
            ],
        ],
    ],

इसने मेरे लिए इसे ठीक कर दिया।


2

समस्या यह है कि आपका पासवर्ड पासवर्ड सत्यापन नियमों से मेल नहीं खाता है। आप अपनी समस्या को हल करने के लिए सरल चरणों का पालन कर सकते हैं।

आप नीचे कोड टाइप करके पासवर्ड सत्यापन विन्यास मैट्रिक्स देख सकते हैं।

mysql-> SHOW VARIABLES LIKE 'validate_password%';

फिर अपने मैट्रिक्स में आप संबंधित मूल्यों के साथ नीचे चर पा सकते हैं और वहां आपको जांच करनी होगी validate_password_length, validate_password_number_countऔर validate_password_policy

उन चरों के लिए उपयोग किए गए मानों की जाँच करें। सुनिश्चित करें कि आपका validate_password_length6 से अधिक नहीं होना चाहिए। आप नीचे दिए गए कोड का उपयोग करके इसे 6 पर सेट कर सकते हैं।

SET GLOBAL validate_password_length = 6;

और इसके बाद आपको validate_password_number_countनीचे दिए गए कोड का उपयोग करके इसे 0. पर सेट करना होगा।

SET GLOBAL validate_password_number_count = 0;

अंत में आपको आपको सेट validate_password_policyकरना होगा low। उस के रूप में Mediumया Highअभ्यस्त अपने कम सुरक्षित पासवर्ड की अनुमति दें। lowइसे नीचे दिए गए कोड से सेट करें ।

SET GLOBAL validate_password_policy=LOW;

1

पासवर्ड सेट करें जो 7 MySql सत्यापन नियमों को संतुष्ट करता है

जैसे: - d_VX>N("xn_BrD2y

सत्यापन मानदंड को अधिक सरल बनाने से समस्या हल हो जाएगी

SET GLOBAL validate_password_length = 6;
SET GLOBAL validate_password_number_count = 0;

लेकिन एक मजबूत पासवर्ड की सिफारिश करना एक सही समाधान है


0

इस त्रुटि संदेश का आपकी तालिका में संग्रहीत पासवर्ड से कोई लेना-देना नहीं है। यदि आप टाइप करते हैं (SQL कंसोल पर)

"पासवर्ड चुनें ('123456789')"

या अगर

"पासवर्ड चुनें ('A123456789')"

या अगर

"पासवर्ड चुनें ('ए! 123456789')"

यदि आप टाइप करते हैं

"पासवर्ड चुनें ('ए! -123456789')"

तब यह काम करेगा। अपना पासवर्ड बनाने के लिए बस बड़े + छोटे अक्षरों, विशेष वर्णों और संख्याओं का उपयोग करें।

आप इन चेकों को my.cnf में अक्षम कर सकते हैं, लेकिन तब आपको सुरक्षा जोखिम होगा!

[mysqld] में जोड़ें:

validate_password_policy=LOW
validate_password_special_char_count=0
validate_password_length=0
validate_password_mixed_case_count=0
validate_password_number_count=0

0

mysqld के ubuntu के ताज़े इंस्टालेशन पर मेरे लिए काम नहीं किया, इसे जोड़ना पड़ा: /etc/mysql/mysql.conf.d/mysqld.cnf या सर्वर शुरू नहीं होगा (अनुमान करें कि प्लगइन इस पर लोड होगा सही समय जब मैंने बस इसे प्लगइन-लोड-ऐड निर्देश के बिना जोड़ा)

plugin-load-add=validate_password.so
validate_password_policy=LOW
validate_password_length=8
validate_password_mixed_case_count=0
validate_password_number_count=0
validate_password_special_char_count=0

0

कुछ ऐसे क्षण होते हैं जहाँ त्वरित समाधान खोजना बहुत अच्छा होता है। लेकिन अगर आप पासवर्ड प्रतिबंध को कम करने से बच सकते हैं, तो यह आपको भविष्य में बड़ा सिरदर्द होने से बचा सकता है।

अगला लिंक आधिकारिक दस्तावेज https://dev.mysql.com/doc/refman/5.6/en/validate-password.html से है , जहां वे आपके जैसे एक उदाहरण को उजागर करते हैं, और वे इसे हल करते हैं।

आपके पास एकमात्र समस्या यह है कि वास्तविक न्यूनतम नीति को संतुष्ट करने के लिए आपका पासवर्ड इतना मजबूत नहीं है (हटाने के लिए अनुशंसित नहीं है)। इसलिए आप अलग-अलग पासवर्ड आज़मा सकते हैं जैसा कि आप उदाहरण में देख सकते हैं।


0

शो वारिअल्स को 'validate_password%' पसंद है;

यहाँ छवि विवरण दर्ज करें

mysql> SET GLOBAL validate_password.length = 6;

mysql> SET GLOBAL validate_password.number_count = 0;

mysql> SET GLOBAL validate_password.policy = LOW;

शो वारिअल्स को 'validate_password%' पसंद है;

यहाँ छवि विवरण दर्ज करें


-1
mysql> SET GLOBAL validate_password.policy = 0;

1
हालांकि यह कोड ओपी के मुद्दे को हल कर सकता है, लेकिन स्पष्टीकरण को शामिल करना सबसे अच्छा है कि आपका कोड ओपी के मुद्दे को कैसे संबोधित करता है। इस तरह, भविष्य के आगंतुक आपके पोस्ट से सीख सकते हैं, और इसे अपने स्वयं के कोड पर लागू कर सकते हैं। SO एक कोडिंग सेवा नहीं है, बल्कि ज्ञान के लिए एक संसाधन है। इसके अलावा, उच्च गुणवत्ता, पूर्ण उत्तरों के अपग्रेड होने की अधिक संभावना है। ये विशेषताएं, इस आवश्यकता के साथ कि सभी पद स्व-सम्‍मिलित हैं, एसओ की कुछ ताकतें एक मंच के रूप में हैं, जो इसे मंचों से अलग करती हैं। आप अतिरिक्त जानकारी जोड़ने और / या स्रोत प्रलेखन के साथ अपने स्पष्टीकरण के पूरक के लिए संपादित कर सकते हैं।
शेरलहोमन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.