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.