La tua password non soddisfa i requisiti attuali della politica


148

Voglio creare un nuovo utente in mysql con sintassi:

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

Ma restituisce un errore:

La tua password non soddisfa i requisiti attuali della politica.

Ho provato molte password ma non funzionano. Come posso risolvere questo problema?


1
Imposta il livello di criteri password in basso. Dai un'occhiata qui: dev.mysql.com/doc/refman/5.6/en/…
Fjarlaegur

4
Come si imposta la politica password? Puoi controllare le variabili che sono state impostate per il tuo modulo di validazione della password usandoSHOW VARIABLES LIKE 'validate_password%'
JNevill

Grazie! Ho impostato il livello di criteri password inferiore e funziona.
Nguyen,

1
Ho risolto il mio problema usandoUNINSTALL COMPONENT 'file://component_validate_password';
princebillyGK

Risposte:


245

Per via della tua password. Puoi vedere la password convalida le metriche di configurazione usando la seguente query nel client MySQL:

SHOW VARIABLES LIKE 'validate_password%';

L'output dovrebbe essere qualcosa del genere:

+--------------------------------------+-------+
| 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     |
+--------------------------------------+-------+

quindi è possibile impostare un livello di criteri password inferiore, ad esempio:

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

controlla la documentazione di MySQL .


31
Dovresti citare la documentazione ufficiale di MySQL , non un video di YouTube, per l'amor del cielo.
Marchese di Lorne,

26
Utilizzare il seguente comando per utilizzare 'password' come password per la macchina di sviluppo:SET GLOBAL validate_password_policy = 0;
Mahmudul Hasan Shohag

4
SET GLOBAL validate_password.length = 6; SET GLOBAL validate_password.number_count = 0; Aggiornato !!
BeatingBytes,

6
è piuttostoSET GLOBAL validate_password.policy = 0;
iamtodor,

1
Questo è stato utile perché in realtà mi ha mostrato perché la mia password lunga di 30 caratteri era "debole" (nessun carattere speciale). Sono stato in grado di rimuovere il requisito di carattere speciale e aumentare la lunghezza minima da 8 a 20.
andrewtweber

68

NOTA: questa potrebbe non essere una soluzione sicura. Ma se stai lavorando in un ambiente di test, hai solo bisogno di una soluzione rapida e non ti importa nemmeno delle impostazioni di sicurezza. Questa è una soluzione rapida.

Lo stesso problema si è verificato quando ho eseguito "mysql_secure_installation" e modificato il livello di sicurezza della password su "medio".

Ho ignorato l'errore eseguendo i seguenti:

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

assicurati di reinstallare il plugin "validate_password" se necessario.


3
Terribile soluzione. Dovresti abbassare il livello in base alle tue esigenze, non rimuovere l'intera struttura.
Marchese di Lorne,

10
grazie per la pubblicazione. soluzione rapida e sporca. proprio come quello che dice @kennyut: assicurati di reinstallare il plugin "validate_password"
Meng Zhao,

52

Se non ti interessa quale sia la politica della password. Puoi impostarlo su BASSO emettendo il comando mysql di seguito:

mysql> SET GLOBAL validate_password_policy=LOW;

8
dovrebbe essere SET GLOBAL validate_password.policy=LOW;invece
Songyy

22

Per MySQL 8 *

SET GLOBAL validate_password.policy=LOW

Link di riferimento per spiegare la politica - Fare clic qui


20

Dopo aver eseguito il comando sudo mysql_secure_installation.

  1. Esegui sudo mysqlper accedere al prompt mysql.
  2. Eseguire questo SELECT user,authentication_string,plugin,host FROM mysql.user;per controllare per l'utente di root per avere come plug auth_socket .
  3. Quindi esegui uninstall plugin validate_password;per eliminare i privilegi prima di eseguire questo ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';Assicurati di cambiare la password con una password sicura .

NOTA: consulta questo link https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-18-04 per ulteriori informazioni


11

Devi cambiare la politica della password di MySQL su LOW.

accedi come root

mysql -u root -p

cambia politica

SET GLOBAL validate_password_policy=LOW;

o

SET GLOBAL validate_password_policy=0;

Uscita

exit

riavviare il servizio MySQL

sudo service mysqld restart

Devi cambiare la politica della password di MySQL in Bassa = 0 / Media = 1 / Alta = 2.

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

8

Per MySql 8 è possibile utilizzare il seguente script:

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

A mio avviso, impostare "validate_password_policy" su "low" o disinstallare il "validate plugin password" non è la cosa giusta da fare. Non devi mai scendere a compromessi con la sicurezza del tuo database (a meno che non ti interessi davvero). Mi chiedo perché la gente stia persino suggerendo queste opzioni quando puoi semplicemente scegliere una buona password.

Per ovviare a questo problema, ho eseguito il seguente comando in mysql: MOSTRA VARIABILI COME 'validate_password%' come suggerito da @JNevill. Il mio "validate_password_policy" era impostato su Medio, insieme ad altre cose. Ecco lo screenshot della sua esecuzione: Convalida politica password

Il risultato è autoesplicativo. Per una password valida (quando il criterio Password è impostato su medio):

  • La password deve contenere almeno 8 caratteri
  • Il conteggio dei casi misti è 1 (almeno 1 lettera in maiuscolo e 1 lettera in maiuscolo)
  • Il conteggio dei numeri è 1
  • Il numero minimo di caratteri speciali è 1

Quindi una password valida deve rispettare la politica. Esempi di password valida per le regole sopra potrebbero essere:

  • Student123 @
  • NINZAcoder $ 100
  • demoPass # 00

Puoi scegliere qualsiasi combinazione purché soddisfi la politica.

Per altri "validate_password_policy" puoi semplicemente cercare i valori per diverse opzioni e scegliere la tua password di conseguenza (non ho provato per "STRONG" ).

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


2
È FORTE per la politica della password principale.
Steam gamer

Inoltre non capisco le persone che suggeriscono di effettuare il downgrade validate_password_policya LOW. Gli utenti possono creare o generare perfettamente una password complessa che soddisfi i requisiti. Se non sei sicuro di come fare, usa uno strumento per quello. Ad esempio github.com/joseluisq/rpasswd
joseluisq il

3

Passaggio 1: controlla il plug-in di autenticazione predefinito

SHOW VARIABLES LIKE 'default_authentication_plugin';

Passaggio 2: soddisfare i requisiti di convalida della password

SHOW VARIABLES LIKE 'validate_password%';

Passaggio 3: configurare l'utente con i requisiti di password corretti

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

3

Ho avuto lo stesso problema e la risposta è proprio davanti a te, ricorda quando hai eseguito lo script durante l'installazione di mysql come

sudo mysql_secure_installation

lì da qualche parte hai scelto quale tipo di password desideri scegliere

Esistono tre livelli di criteri di convalida della password:

BASSA Lunghezza> = 8 MEDIA Lunghezza> = 8, numerico, maiuscolo e caratteri speciali FORTE Lunghezza> = 8, numerico, maiuscolo, caratteri speciali e file dizionario

Inserisci 0 = BASSO, 1 = MEDIO e 2 = FORTE:

devi fornire una password per la stessa politica

ecco alcuni esempi di esempio per le tue password:
per tipo 0: abcdabcd
per tipo 1: abcd1234
per tipo 2:ancd@1234


2

Per gli utenti Laravel che hanno questo problema con MySQL 8.0.x, aggiungi

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

al tuo file database.php come di seguito:

// 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',
            ],
        ],
    ],

Lo ha riparato per me.


2

Il problema è che la password non corrisponde alle regole di convalida della password. Puoi semplicemente seguire i passaggi seguenti per risolvere il tuo problema.

Puoi semplicemente vedere la matrice di configurazione della convalida della password digitando il codice seguente.

mysql-> SHOW VARIABLES LIKE 'validate_password%';

Quindi nella tua matrice puoi trovare le variabili seguenti con i valori corrispondenti e lì dentro devi controllare validate_password_length, validate_password_number_counte validate_password_policy.

Controlla i valori usati per quelle variabili. Assicurati di validate_password_lengthnon essere maggiore di 6. Puoi impostarlo su 6 usando il codice qui sotto.

SET GLOBAL validate_password_length = 6;

E dopo che è necessario impostare validate_password_number_countsu 0. Fallo utilizzando il codice seguente.

SET GLOBAL validate_password_number_count = 0;

Finalmente devi impostarti validate_password_policysu low. Avere questo come Mediumo Highnon consentirà le password meno sicure. Impostalo lowcon il codice qui sotto.

SET GLOBAL validate_password_policy=LOW;

1

Imposta una password che soddisfi 7 regole di validazione MySql

per esempio:- d_VX>N("xn_BrD2y

Rendere il criterio di convalida un po 'più semplice risolverà il problema

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

Ma una password complessa consigliata è una soluzione corretta


0

Questo messaggio di errore non ha nulla a che fare con la password memorizzata nella tabella. Si verifica anche se si digita (sulla console SQL)

"seleziona password ('123456789')"

o se

"seleziona password ('A123456789')"

o se

"seleziona password ('A! 123456789')"

Se digiti

"seleziona password ('A! a123456789')"

allora funzionerà. Usa solo lettere grandi + piccole, caratteri speciali e numeri per creare la tua password.

Puoi disabilitare questi controlli in my.cnf, ma avrai un rischio per la sicurezza!

in [mysqld] aggiungi:

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

non ha funzionato per me su Ubuntu nuova installazione di mysqld, ho dovuto aggiungere questo: a /etc/mysql/mysql.conf.d/mysqld.cnf o il server non si avviava (suppongo che il plugin non si caricasse sul momento giusto quando l'ho semplicemente aggiunto senza la direttiva plugin-load-add)

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

Ci sono alcuni momenti in cui trovare una soluzione rapida è fantastico. Ma se riesci a evitare di ridurre le restrizioni delle password, in futuro potrebbe impedirti di avere grossi mal di testa.

Il prossimo link è dalla documentazione ufficiale https://dev.mysql.com/doc/refman/5.6/en/validate-password.html , dove espongono un esempio esattamente come il tuo e lo risolvono.

L'unico problema che hai è che la tua password non è abbastanza forte per soddisfare il criterio minimo effettivo (non raccomandato per la rimozione). Quindi puoi provare password diverse come puoi vedere nell'esempio.


0

MOSTRA VARIABILI COME 'validate_password%';

inserisci qui la descrizione dell'immagine

mysql> SET GLOBAL validate_password.length = 6;

mysql> SET GLOBAL validate_password.number_count = 0;

mysql> SET GLOBAL validate_password.policy = LOW;

MOSTRA VARIABILI COME 'validate_password%';

inserisci qui la descrizione dell'immagine


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

1
Sebbene questo codice possa risolvere il problema del PO, è meglio includere una spiegazione su come il codice risolve il problema del PO. In questo modo, i futuri visitatori possono imparare dal tuo post e applicarlo al proprio codice. SO non è un servizio di codifica, ma una risorsa per la conoscenza. Inoltre, è più probabile che vengano votate risposte complete e di alta qualità. Queste caratteristiche, insieme alla necessità che tutti i post siano autonomi, sono alcuni dei punti di forza di SO come piattaforma, che lo differenzia dai forum. È possibile modificare per aggiungere ulteriori informazioni e / o integrare le proprie spiegazioni con la documentazione di origine.
SherylHohman,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.