Accesso negato per l'utente 'root @ localhost' (utilizzando la password: NO)


115

Sono nuovo in MySQL, sto cercando di eseguire WordPress sul mio desktop Windows e ha bisogno di MySQL.

Installo tutto ciò con Web Platform Installercui è fornito da Microsoft. Non ho mai impostato una password di root per MySQL e nel passaggio finale dell'installazione di WordPress, richiede una password del server MySQL.

Qual è la password predefinita per root (se presente) e come cambiarla?

Provai:

mysql -u root password '123'

Ma mi mostra:

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

Dopo questo provo:

mysql -u root -p

Tuttavia, richiede una password che non ho.


Aggiornamento : come suggerito da Bozho, ho fatto quanto segue:

  1. Ho interrotto il servizio MySQL dai servizi Windows
  2. CMD aperto
  3. Cambiato il percorso in c: \ program files \ mysql \ bin
  4. Eseguito il comando seguente

    mysqld --defaults-file="C:\\program files\\mysql\\mysql server 5.1\\my.ini" --init-files=C:\\root.txt

  5. Il comando è stato eseguito con un avviso sul set di caratteri che ho menzionato di seguito

  6. Avvio il servizio MySQL dai servizi di Windows
  7. Scrivo nella riga di comando

    mysql -u root -p EnterPassword: 123 // 123 was the password

  8. La riga di comando mostra il seguente errore

    Access denied for user 'root@localhost' (using password:**YES**)

Come lo risolvo? Sto aspettando di sentire da te.


1
Il primo comando è sbagliato, dovrebbe essere -po --password, ma non password. Ecco perché mysql risponde con USING PASSWORD NO.
— Konerak

3
Nessuno sembra avergli dato la risposta ovvia. La password per l' rootID utente è vuota dopo l'installazione iniziale. Quindi fallo mysql -u root -pe poi premi invio, cioè lascia la password vuota. Quindi, ovviamente, inserisci una password rootnell'ID utente.
— RiggsFolly

1
@RiggsFolly no, non funziona! la password vuota mi dà accesso negato!
— J86

Voglio aggiungere un commento perché non sono sicuro che la risposta accettata sia quella corretta. Per me digitare mysql -u root -p e poi una volta richiesta la password, dare quella giusta (quella impostata durante l'installazione) ha funzionato. Invece provare il nome di un DB alla -p con un DB che so esistere non ha funzionato.
— Carmine Tambascia

Risposte:


48

Puoi reimpostare la tua password di root . Tieni presente che non è consigliabile utilizzare root senza password.


@Bozho - Seguo le istruzioni e creo un file di testo e lo chiamo dal comando citato, dopodiché mi trovo di fronte 100608 [warning] --default-character-set is deprecated and will be removed in a future release. please use --character-set-server instead.------------------------ -------- e finalmente quando avvio di nuovo il mio servizio mysql mi trovo di fronte all'errore esatto ma questa volta (using password:yes)cosa devo fare?
— Nasser Hadjloo

@ Bozo - Nota che non ho potuto eseguire il tuo comando con l' mysqldt-ntho eseguito da mysqldt -ntIn realtà il primo non è riconoscibile per cmd. Sto aspettando di sentire da te.
— Nasser Hadjloo

@ Bozho - Ho aggiornato la mia domanda con il bug. Grazie per il tuo tempo.
— Nasser Hadjloo

@ Bozho - c'è un modo per aggiornare / personalizzare i miei errori di mysql? ** Aggiorna "Accesso negato per l'utente" root @ localhost "(utilizzando la password: NO)" a "Accesso negato per l'utente" myname @ localhost "(utilizzando la password: NO)" **
— Hitesh

81

per questo tipo di errore; devi solo impostare una nuova password per l'utente root come amministratore. seguire i passaggi come segue:

[root ~]# mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:NO)
  1. Arresta il servizio / demone di mysql in esecuzione

    [root ~]# service mysql stop   
    mysql stop/waiting
  2. Avvia mysql senza alcun privilegio utilizzando la seguente opzione; Questa opzione viene utilizzata per avviare e non utilizzare il sistema di privilegi di MySQL.

    [root ~]# mysqld_safe --skip-grant-tables &

In questo momento, il terminale sembrerà arrestarsi . Lascia che sia, e usa il nuovo terminale per i prossimi passi.

  1. accedere al prompt dei comandi di mysql

    [root ~]# mysql -u root
    mysql> 
  2. Correggere l'impostazione dei permessi dell'utente root;

    mysql> use mysql;
    Database changed
    mysql> select * from  user;
    Empty set (0.00 sec)
    mysql> truncate table user;
    Query OK, 0 rows affected (0.00 sec)
    mysql> flush privileges;
    Query OK, 0 rows affected (0.01 sec)
    mysql> grant all privileges on *.* to root@localhost identified by 'YourNewPassword' with grant option;
    Query OK, 0 rows affected (0.01 sec)

* se non vuoi alcuna password o piuttosto una password vuota

    mysql> grant all privileges on *.* to root@localhost identified by '' with grant option;
    Query OK, 0 rows affected (0.01 sec)*
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

Conferma i risultati:

    mysql> select host, user from user;
+-----------+------+
| host      | user |
+-----------+------+
| localhost | root |
+-----------+------+
1 row in set (0.00 sec)
  1. Esci dalla shell e riavvia mysql in modalità normale.

    mysql> quit;
    [root ~]# kill -KILL [PID of mysqld_safe]
    [root ~]# kill -KILL [PID of mysqld]
    [root ~]# service mysql start
  2. Ora puoi accedere con successo come utente root con la password che hai impostato

     [root ~]# mysql -u root -pYourNewPassword 
     mysql> 

2
Premi Invio dopo "[root ~] # mysqld_safe --skip-grant-tables &" e apri un altro terminale per inserire "[root ~] # mysql -u root"
— Liuda

ho incontrato questo problema, e ho fatto molto, dimentica solo di riavviare i servizi db ... molte grazie!
— Bruce Lee

3
Al passaggio 3, ottengoERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
— MrMartin

4
@MrMartin, crea quella directory sudo mkdir -p /var/run/mysqlde dagli il permessosudo chown mysql:mysql /var/run/mysqld
— niceday

questa è la risposta che mi ha aiutato molto!
— Jones G

17

1) È possibile impostare la password di root invocando la console MySQL. É situato in

C:\wamp\bin\mysql\mysql5.1.53\bin per impostazione predefinita.

Vai alla directory e digita MySQL. quindi impostare la password come segue ..

    > SET PASSWORD FOR root@localhost = PASSWORD('new-password');

2) È possibile configurare l'applicazione phpmyadmin di wamp per l'utente root modificando

C:\wamp\apps\phpmyadmin3.3.9\config.inc.php 

Nota: - se stai usando xampp, il file si troverà in

C:\xampp\phpMyadmin\config.inc.php

Assomiglia a questo:

        $cfg['Servers'][$i]['verbose'] = 'localhost';
        $cfg['Servers'][$i]['host'] = 'localhost';
        $cfg['Servers'][$i]['port'] = '';
        $cfg['Servers'][$i]['socket'] = '';
        $cfg['Servers'][$i]['connect_type'] = 'tcp';
        $cfg['Servers'][$i]['extension'] = 'mysqli';
        $cfg['Servers'][$i]['auth_type'] = 'config';
        $cfg['Servers'][$i]['user'] = 'root';
        $cfg['Servers'][$i]['password'] = 'YOURPASSWORD';
        $cfg['Servers'][$i]['AllowNoPassword'] = false;

L'errore "Accesso negato per l'utente 'root @ localhost' (utilizzando la password: NO)" verrà risolto quando si imposta $cfg['Servers'][$i]['AllowNoPassword']su false

Se hai cambiato in privato la password per 'root @ localhost', devi fare 2 cose per risolvere l'errore "Accesso negato per l'utente 'root @ localhost'":

  1. se ["password"] ha virgolette vuote come "", inserisci la tua password tra virgolette.
  2. modificare (utilizzando la password: NO) in (utilizzando la password: SI)

Questo risolverà l'errore.

Nota: phpmyadmin è uno strumento separato fornito con wamp. Fornisce solo un'interfaccia a MySQL. se si modifica la password del mio root sql, è necessario modificare le configurazioni di phpmyadmin. Di solito phpmyadmin è configurato per l'utente root.


no non puoi .. mysql non si avvia: c: \ wamp64 \ bin \ mysql \ mysql5.7.23 \ bin> mysql ERRORE 1045 (28000): Accesso negato per l'utente 'ODBC' @ 'localhost' (utilizzando la password: NO)
— Jaxx0rr

9

Ho ricevuto lo stesso errore su OS X El captain. Mysql versione 5.7.0 Sono stato in grado di connettermi a mysql con root dopo aver eseguito questi passaggi.

Arresta il server mysql

sudo mysql.server stop

Avvia mysql in modalità provvisoria

sudo mysqld_safe --skip-grant-tables

Usando mysqld, cambia il database in mysql e aggiorna i dettagli per l'utente "root".

show databases;
use mysql;
UPDATE mysql.user 
    SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
    WHERE User = 'root' AND Host = 'localhost';
exit;

Dopodiché, uccidi il processo "mysqld_safe" e avvia mysql normalmente. Dovresti essere in grado di accedere a mysql usando root e una nuova password. Documenti SQL per maggiori dettagli


4

Modifica semplicemente il my.inifile in C: \ xampp \ mysql \ bin path. Basta aggiungere:

skip-grant-tables

linea tra le righe di # The MySQL server [mysqld]e port=3306. Quindi riavvia il server MySQL.

Sembra:

Immagine dello schermo


Quando lo faccio ottengo un altro errorecommunications link failure
— Ahmed Hussein

3

Assicurati che il servizio MySQL sia in esecuzione sulla tua macchina, quindi segui le istruzioni di MySQL per la configurazione iniziale di root (cerca 'windows' e ti porterà ai passaggi per la configurazione di root):

http://dev.mysql.com/doc/refman/5.1/en/default-privileges.html


Questa soluzione non funzionerà per me perché non ho la password di cui ha bisogno nel secondo passaggio.
— Nasser Hadjloo

Questo è quello che stavo guardando quando ho inviato il link, sei sicuro che non funzioni? Non vedo alcun riferimento alla vecchia password. Per Windows, fai questo: shell> mysql -u root mysql> SET PASSWORD FOR 'root' @ 'localhost' = PASSWORD ('newpwd'); mysql> IMPOSTA LA PASSWORD PER 'root'@'127.0.0.1' = PASSWORD ('newpwd'); mysql> IMPOSTA LA PASSWORD PER "root" @ "%" = PASSWORD ("newpwd");
— sholsapp

1
Come ho detto prima quando scrivo mysql -u rootdevo affrontare un problema e non riesco ad accedere a mysql per eseguire la seconda riga. quindi Come usare questo comando?
— Nasser Hadjloo

3

Usa mysql -u root -p Chiederà la password, inserisci la password e entra.


Ha funzionato dopo che ho ottenuto l'accesso negato agli utenti.
— Shawn W

2

Un'altra soluzione se qualcuno ottiene l'errore La password specificata per l'account utente 'root' nonèvalida, o non è riuscita a connettersi al server database anche con la password corretta, è la seguente

• Nel registro di Windows, elimina la chiave reg mysql_pwd in HKCU \ Software \ Microsoft \ WebPlatformInstaller

• Disinstalla la versione precedente del connettore MySQL .NET

• Scarica e installa l'ultima versione di MySql .NET Connector .


Il controllo della password e del nome del database ha funzionato per me .. +1
— Abhinav Dobhal

2

Per MySQL 5.7. Questi sono i passaggi seguenti:

Arresta completamente il tuo server MySQL. Questo può essere fatto accedendo alla finestra Servizi in Windows XP e Windows Server 2003, dove è possibile interrompere il servizio MySQL.

Apri il prompt dei comandi di MS-DOS utilizzando "cmd" nella finestra Esegui. Al suo interno vai alla tua cartella bin MySQL, come C: \ MySQL \ bin usando il comando cd.

Esegui il seguente comando nel prompt dei comandi: mysqld.exe -u root --skip-grant-tables

Lascia il prompt dei comandi MS-DOS corrente così com'è e apri una nuova finestra del prompt dei comandi di MS-DOS.

Vai alla tua cartella bin MySQL, come C: \ MySQL \ bin usando il comando cd.

Accedi a mysql e premi invio.

Ora dovresti avere il prompt dei comandi di MySQL funzionante. Digitare use mysql; in modo da passare al database "mysql".

Esegui il seguente comando per aggiornare la password:

aggiorna il set utente authentication_string = password ('1111') dove user = 'root';


1

Nel tuo codice sostituisci "root" con il nome utente del server e la password con la password del server. Ad esempio, se hai DB e i tuoi file php sul server http://www.example.com, ovviamente dovresti entrare in questo sito del server utilizzando il tuo nome utente e password.


1

Se stai usando XAMPP, vai su, C:\xampp\phpMyAdminquindi apri la riga di config.inc.phpricerca $cfg['Servers'][$i]['password'] = ''e inserisci la tua password lì.


1

Per alcune informazioni ricevo un errore dopo aver cambiato la password:

Accesso negato per l'utente 'root' @ 'localhost' (utilizzando la password: NO)

Accesso negato per l'utente 'root' @ 'localhost' (utilizzando la password: YES)

In entrambi i casi si è verificato un errore.

Ma il fatto è che dopo l'ho provato

mysql -uroot -ppassword invece di

mysql -u root -p password -> con spazi tra -uroot e -ppassword quindi forse se qualcuno ha problemi può provare in questo modo.


0

Alcune volte accade solo a causa dell'installazione di Wamp o della modifica delle opzioni della password dell'utente root. Si possono usare i privilegi -> root (utente) e quindi impostare l'opzione password su NO per eseguire le cose senza alcuna password OPPURE impostare la password e usarla nell'applicazione.


0
  1. Cambia la password da config.inc.phppresente in C:\xampp\phpMyAdmin.
  2. Digita mysql -u root -pnel prompt dei comandi.
  3. Ti verrà chiesto di inserire la password. Inserisci la password che hai aggiornato nel file config.inc.php.

0

se hai cambiato la porta in una non standard, devi specificarla:

$ connessione = mysqli_connect ('localhost: 3308', 'root', '', 'loginapp');


-3
mysqladmin -u root -p password

Inserisci il tuo current password

poi

Inserisci il tuo new password


1
Il punto è che l'OP non conosce la password corrente, perché non è mai stata impostata .
— Nateowami

Conoscevo la mia password ma ho avuto problemi con l'accesso con la password temporanea. questa risposta ha funzionato per me
— Bernard
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.