Come resettare la password di root di mysql?

Ho un piccolo problema con il mio phpmyadmin, infatti ho accidentalmente cancellato più account utente. Dal momento che è imansible connettersi senza l’errore:

# 1045 - Access denied for user 'root' @ 'localhost' (using password: NO) 

Ho cercato un po ‘in rete prima, e anche la tecnica:

 UPDATE mysql.user SET Password = PASSWORD ('') WHERE User = 'root'; FLUSH PRIVILEGES; 

non funziona, o non ho capito come funzionava.

Sono su FreeBSD 8.1, la mia versione di PhpMyadmin è 2.11.

Grazie in anticipo per le tue risposte.

    Ho riassunto la mia soluzione qui: http://snippets.dzone.com/posts/show/13267

     sudo stop mysql sudo mysqld --skip-grant-tables --skip-networking mysql mysql> update mysql.user set password = password('your_new_password') where user = 'root'; mysql> flush privileges; mysql> exit; sudo mysqladmin shutdown sudo start mysql 

    Per mysql 5.7.16 o successivo ho trovato questo (da mysql.com) come soluzione operativa. Di seguito sono riportati alcuni punti che sono diversi rispetto alle precedenti versioni precedenti

    1) Ho usato il comando seguente per eseguire mysql in modalità sicura come per altri riferimenti che in realtà funzionavano bene per me (mysql 5.7.16 ubuntu 16.04).

     mysqld_safe --skip-grant-tables --skip-networking 

    2) Il seguente aggiornamento stmt NON funziona per versioni successive (es. 5.7 e successive)

     -- NOT Working for 5.7 and later UPDATE mysql.user SET Password = PASSWORD ('') WHERE User = 'root'; FLUSH PRIVILEGES; 

    Utilizzare al di sotto per 5.7.6 e versioni successive

     UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N' WHERE User = 'root' AND Host = 'localhost'; FLUSH PRIVILEGES; 

    O utente sotto per 5.7.5 o versioni precedenti.

     SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass'); 

    Questo ha funzionato per me, senza effetti collaterali. https://help.ubuntu.com/community/MysqlPasswordReset

    Si prega di seguire le istruzioni dal link sottostante per ripristinare la password di root. Devi farlo da fuori mysql.

    Reimpostazione della password MySql

    Dimenticare la tua password MySQL può essere un vero grattacapo per te. Ecco alcuni semplici passaggi che puoi seguire per recuperare la password MySql sotto Windows Stop MySql

    Devi interrompere il servizio MySql prima di procedere. In ambiente Windows, vai su “Task Manager” e sotto “Servizio” trovi MySQL e interrompilo. Scrivi Sql per cambiare la password

    Tutto quello che devi fare è creare un file di testo e inserire le due righe seguenti. UPDATE mysql.user SET Password = PASSWORD (‘MyNewPass’) WHERE User = ‘root’; FLUSH PRIVILEGES; Salvalo sotto C: \ drive e assegnagli un nome ‘mysql-init.txt’ Tempo di riavviare MySQL da solo.

    Ora è il momento di riavviare il tuo MySQl che hai interrotto prima, ma questa volta dalla riga di comando. C:> C: \ mysql \ bin \ mysqld-nt –init-file = C: \ mysql-init.txt Finitura!

    Ora puoi accedere con la tua nuova password. Al termine, rimuovere il file creato nella fase precedente.

    Inoltre c’è un link ( http://kaziprogrammingblog.osinweb.com/article/showarticle/Resetting-MySql-Password ) dove ho spiegato la stessa cosa.

    Spero che questo ti aiuti .. 🙂

    Risposta per XAMPP su Windows:

    • Modifica C: \ xampp \ mysql \ bin \ my.ini e inserisci skip-grant-tables sotto [mysqld]
    • Riavvia MySQL dall’interfaccia del Pannello di controllo
    • Nella finestra phpMyAdmin, selezionare la scheda SQL dal pannello superiore. Questo aprirà la scheda SQL dove possiamo eseguire le query SQL. Ora digita la seguente query nell’area di testo e fai clic su Vai

    UPDATE mysql.user SET Password = PASSWORD (‘password’) WHERE User = ‘root’; FLUSH PRIVILEGES;

    • Rimuovere le tabelle skip-grant nel file my.ini
    • Riavvia MySQL dall’interfaccia del Pannello di controllo

    FATTO!

    Sappiate che la password utente root di mysql non deve essere uguale alla password di phpmyadmin.

    ecco cosa ho fatto e ha funzionato:
    Dopo aver installato (installazione di rpm), eseguire un vi /etc/my.cnf .
    Questo ti darà un percorso dove è impostato il tuo datadir . Per me era datadir=/var/lib/mysql .
    Aggiungi una riga lì user=root e rimuovi tutto il contenuto all’interno del percorso del datadir : rm -rf /var/lib/mysql/* .
    Ora premi il comando: mysqld --initialize . Una password temporanea viene generata in un luogo. Per questo:
    grep "A temporary password" /var/log/* .
    Otterrai una riga che dice:
    /var/log/mysqld.log:2018-05-01T15:13:47.937449Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: &uosjoGfi9:K Quindi per me &uosjoGfi9:K era la mia password temporanea.
    Ora fai un mysql -u root -p . Incolla la tua password temporanea da ciò che hai ricevuto dall’alto.
    Sarai nella tua modalità mysql cli. Adesso fai:
    mysql> use mysql;
    Ti verrà chiesto di reimpostare la password: ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
    Esegui il tuo comando ALTER:
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPswd';
    E hai finito.