Non riesco a capire la mia password di root di MySQL; come posso scoprirlo? Esiste un file in cui è memorizzata questa password?
Sto seguendo questo link ma non ho directory directadmin in locale.
Non riesco a capire la mia password di root di MySQL; come posso scoprirlo? Esiste un file in cui è memorizzata questa password?
Sto seguendo questo link ma non ho directory directadmin in locale.
Risposte:
grazie a @thusharaK ho potuto resettare la password di root senza conoscere la vecchia password.
Su Ubuntu ho fatto quanto segue:
sudo service mysql stop
sudo mysqld_safe --skip-grant-tables --skip-syslog --skip-networking
Quindi esegui mysql in un nuovo terminale:
mysql -u root
Ed esegui le seguenti query per modificare la password:
UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
FLUSH PRIVILEGES;
In MySQL 5.7, il campo password nel campo tabella mysql.user è stato rimosso, ora il nome del campo è 'authentication_string'.
Esci dalla modalità provvisoria mysql e avvia il servizio mysql:
mysqladmin shutdown
sudo service mysql start
mysqladmin -u root -p shutdown, con la nuova password.
mysql -u root. Mostra erroreAccess denied
Non è possibile visualizzare la password con hash; l'unica cosa che puoi fare è resettarlo!
Ferma MySQL:
sudo service mysql stop
o
$ sudo /usr/local/mysql/support-files/mysql.server stop
Avviarlo in modalità provvisoria:
$ sudo mysqld_safe --skip-grant-tables
(sopra la riga è l'intero comando)
Questo sarà un comando in corso fino al termine del processo, quindi apri un'altra finestra shell / terminale, accedi senza una password:
$ mysql -u root
mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
MySQL 5.7 e versioni successive:
mysql> use mysql;
mysql> update user set authentication_string=password('password') where user='root';
Avvia MySQL:
sudo mysql start
o
sudo /usr/local/mysql/support-files/mysql.server start
La tua nuova password è "password".
mysql_secure_installatione root non ha più collaborato. Cosa fa l' authentication_stringimpostazione?
mysqladmin -u root -p shutdowncon la nuova password quindisudo service mysql start
MySQL 5.7 e versioni successive salva la radice nel file di registro MySQL.
Per favore prova questo:
sudo grep 'temporary password' /var/log/mysqld.log
/var/log/mysql/error.logconteneva un avvertimento che la password di root era vuota - quindi questo tipo di mi ha salvato la giornata :)
una cosa che mi ha fatto scattare su una nuova installazione di mySQL e mi chiedo perché non sono riuscito a far funzionare la password predefinita e perché anche i metodi di ripristino non funzionavano. si scopre bene che su Ubuntu 18 la versione più recente del server mysql non utilizza affatto l'autenticazione della password per l'utente root. Quindi questo significa che non importa cosa lo hai impostato, non ti permetterà di usarlo. si aspetta che tu acceda da un socket privilegiato. così
mysql -u root -p
non funzionerà affatto, anche se stai usando la password corretta !!! negherà l'accesso, qualunque cosa tu abbia inserito.
Invece devi usare
sudo mysql
che funzionerà senza alcuna password. poi una volta dentro devi digitare
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password you want to use';
quindi disconnettiti e ora la cosa insanguinata accetterà finalmente la tua password
Non lo trovi. È archiviato in un database, a cui è necessaria la password di root per accedere e, anche se in qualche modo è stato effettuato l'accesso, viene eseguito l'hashing con un hash a senso unico. È possibile ripristinarlo: http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
Seguire questi passaggi per reimpostare la password nel sistema Windows
Arresta il servizio Mysql dal task manager
Crea un file di testo e incolla la seguente istruzione
MySQL 5.7.5 e precedenti:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');
MySQL 5.7.6 e versioni successive:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yournewpassword';
Salva come mysql-init.txte inseriscilo 'C' drive.
Apri il prompt dei comandi e incolla quanto segue
C:\> mysqld --init-file=C:\\mysql-init.txt
mysqld --init-file=/root/m.txt. Ho aggiunto il comando sopra SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');a /root/m.txt
A meno che il gestore pacchetti non richieda di digitare la password di root durante l'installazione, la password di root predefinita è la stringa vuota. Per connettersi al server appena installato, digitare:
shell> mysql -u root --password=
mysql>
Per modificare la password, tornare alla shell unix e digitare:
shell> mysqladmin -u root --password= password root
La nuova password è 'root'. Ora connettiti al server:
shell> mysql -u root --password=
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Spiacenti, la password è stata modificata. Utilizzare il nuovo, root:
shell> mysql -u root --password=root
...
blah, blah, blah : mysql welcome banner
...
mysql>
Bingo! Nuovo fai qualcosa di interessante
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
Maurycy
Oltre alle altre risposte, in un'installazione cpanel, la password di root di mysql è memorizzata in un file chiamato /root/.my.cnf. (e il servizio cpanel lo reimposta al cambio, quindi le altre risposte qui non aiuteranno)
puoi vedere la password di root di mysql, beh, l'ho provata su mysql 5.5, quindi non so se altre nuove versioni funzionano bene o no
nano ~/.my.cnf
Questo ha funzionato per me:
Sul terminale digitare quanto segue
$ sudo mysql -u root -p
Immettere la password: // basta premere invio
mysql>
La password predefinita che ha funzionato per me dopo l'installazione immediata del server mysql è: mysql
La procedura cambia a seconda della versione di MySql. Seguire la procedura esattamente come descritto per la propria versione:
SUGGERIMENTI - Leggi prima della pagina delle istruzioni per la tua versione di MySql *
Nel passaggio 5: anziché eseguire CMD, creare un collegamento sul desktop che chiama CDM.exe. Quindi fare clic con il tasto destro del mouse sul collegamento e selezionare "Esegui come amministratore".
Al passaggio 6: salta la prima versione proposta del comando ed esegui la seconda, quella con il parametro --defaults-file
Una volta eseguito il comando, se tutto è a posto, la finestra CMD rimane aperta e il comando del passaggio 6 continua l'esecuzione. Basta chiudere la finestra (fare clic su 'x'), quindi forzare la chiusura di MySQl da Task Manager.
Elimina il file con i comandi SQL e riavvia MySQL. La password deve essere cambiata ora.
5.0 http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
5.1 http://dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html
... basta cambiare la versione nel link (5.5, 5.6, 5.7)
Nel tuo file .err "hostname" all'interno della cartella di dati su cui funziona MySQL, prova a cercare una stringa che inizi con:
"Viene generata una password temporanea per roor @ localhost"
Puoi usare
less /mysql/data/dir/hostname.err
quindi il comando barra seguito dalla stringa che si desidera cercare
/"A temporary password"
Quindi premere n, per passare al risultato successivo.
Le risposte fornite qui non sembra funzionare per me, il trucco si è rivelato essere: ALTER USER 'root' @ 'localhost' IDENTIFICATO CON mysql_native_password BY 'test';
(risposta completa qui: https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/ )
Sistema:
Procedura:
Apri due sessioni shell, accedendo a una come utente root Linux e all'altra come utente non root con accesso al mysqlcomando.
Nella tua sessione di root, ferma il normale listener mysqld e avvia un listener che ignora l'autenticazione della password ( nota: questo è un rischio significativo per la sicurezza in quanto chiunque abbia accesso al mysql
comando può accedere ai tuoi database senza password. Puoi chiudere sessioni di shell attive e / o disabilitare l'accesso alla shell prima di farlo):
# systemctl stop mysqld
# /usr/sbin/mysqld --skip-grant-tables -u mysql &
Nella sessione non root, accedi a mysql e imposta la password di root di mysql:
$ mysql
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> quit;
Nella sessione root, uccidi l'istanza senza password di mysqld e ripristina il normale listener mysqld al servizio:
# kill %1
# systemctl start mysqld
Nella sessione non root, prova la nuova password di root che hai configurato sopra:
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
...
mysql>
Ho risolto questo in un modo diverso, questo potrebbe essere più facile per alcuni.
L'ho fatto in questo modo perché ho provato ad avviarlo in modalità provvisoria ma non riesco a connettermi con l'errore: ERRORE 2002 (HY000): Impossibile connettersi al server MySQL locale tramite socket '/var/run/mysqld/mysqld.sock' (2)
Quello che ho fatto è stato connettermi normalmente come root:
$ sudo mysql -u root
Quindi ho creato un nuovo superutente:
mysql> grant all privileges on *.* to 'myuser'@'%' identified by 'mypassword' with grant option;
mysql> quit
Quindi accedi come myuser
$ mysql -u myuser -p -h localhost
Cercare di cambiare la password non mi ha dato errori ma non ho fatto nulla per me, quindi ho lasciato cadere e ricreato l'utente root
mysql> drop user 'root'@'localhost;
mysql> mysql> grant all privileges on *.* to 'root'@'localhost' identified by 'mypassword' with grant option;
L'utente root ora sta lavorando con la nuova password
Vai a phpMyAdmin> config.inc.php> $ cfg ['Server'] [$ i] ['password'] = '';
phpmyadmin.