ERRORE 1045 (28000): Accesso negato per l'utente 'root' @ 'localhost' (utilizzando la password: SÌ)


184

Sono un ingegnere elettrico che gioca principalmente con i sistemi di alimentazione invece di programmare. Di recente, ho seguito un manuale per installare una suite di software su Ubuntu. In mySQLrealtà non ne ho alcuna conoscenza . Ho eseguito le seguenti installazioni sul mio Ubuntu.

sudo apt-get update
sudo apt-get install mysql-server-5.5
sudo apt-get install mysql-client-5.5
sudo apt-get install mysql-common
sudo apt-get install glade
sudo apt-get install ntp

Allora lo faccio

me@ubuntu:~/Desktop/iPDC-v1.3.1/DBServer-1.1$ mysql -uroot -proot <"Db.sql"

Ho finito con il seguente messaggio di errore.

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Come posso ripararlo e continuare?


1
Questo non sembra essere strettamente legato alla programmazione per me. L'ho segnalato per la migrazione a SuperUser
Uli Köhler il

I futuri visitatori, inoltre, non dimenticate di controllare le diverse cause spiegate qui: dev.mysql.com/doc/refman/8.0/en/problems-connecting.html
aderchox

Risposte:


155

Nota: per MySQL 5.7+ , vedere la risposta di @Lahiru a questa domanda. Quello contiene più informazioni attuali.

Per MySQL <5.7:

La password di root predefinita è vuota (ovvero stringa vuota) no root. Quindi puoi semplicemente accedere come:

mysql -u root

Dovresti ovviamente cambiare la password di root dopo l'installazione

mysqladmin -u root password [newpassword]

Nella maggior parte dei casi è inoltre necessario configurare singoli account utente prima di lavorare ampiamente anche con il DB.


5
@FarticlePilter Il -pflag specifica la password, quindi dopo aver modificato la password di root ti piacerebbe mysql -u root -p[newpassword]. Il < [filename]è utilizzare il metodo di std per eseguire un file SQL nel percorso determinato tramite le credenziali dell'utente che fornisci.
Mike Brant,

27
Ho provato come detto mysqladmin -u root password abc1234, ma ho ottenuto mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: NO)'. Grazie mille!
Sibbs Gioco d'azzardo

2
@Kanagaroo in questa domanda, l'OP afferma di aver appena installato MySQL per la prima volta e poi ha tentato di accedere tramite il client della riga di comando di MySQL. Sembra il primo accesso a me.
Mike Brant,

18
In realtà per mysql community server 5.7, la password di root predefinita viene generata casualmente durante l'installazione. Controlla il tuo /var/log/mysqld.log per una riga che parla di una "password temporanea". Risparmia ore di pasticciare.
Phil

1
@BraianMellor Questo risolve il problema per MySQL <5.7 in quanto la password di root predefinita (post-installazione) su Ubuntu è vuota (nessuna password), dove nella domanda originale il poster stava cercando di usare root / root. La domanda non riguardava la password persa, la modifica della password o simili. Per le versioni più recenti di MySQL, l'altra risposta a cui ho fatto riferimento è quella corretta, in quanto un utente deve consultare i log degli errori per visualizzare la password di root generata casualmente.
Mike Brant,

114

Sono stato in grado di risolvere questo problema eseguendo questa affermazione

sudo dpkg-reconfigure mysql-server-5.5

Che cambierà la password di root.


10
Proprio quello di cui avevo bisogno ... ma non tutti hanno la versione 5.5 del server. usa dpkg --get-selections | grep sqlper ottenere la tua versione
Balmipour,

1
@Balmipour quale dovrebbe essere il comando equivalente per controllare la versione sql in Rhel 6.x
PrathamN

1
@Divz quale dovrebbe essere il comando per riconfigurare il server mysql in Rhel / centos
PrathamN,

@PrathamN Non ho mai usato red, ma googling per "versioni di pacchetti di controllo red hat" mi dà comandi come questo: yum list installedaggiungi | grep sqlper filtrare solo i pacchetti SQL.
Balmipour,

1
Quando eseguo questo comando in Mac OS X, ottengo questo errore: sudo: dpkg-reconfigure: command not found. Qualche suggerimento?
mOna

90

Devi reimpostare la password! passaggi per mac osx (testato e funzionante) e ubuntu

Smetti di usare 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 --skip-networking

(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';

Secondo il commento di @ IberoMedia, per le versioni più recenti di MySQL, il campo si chiama authentication_string:

mysql> UPDATE mysql.user SET authentication_string =PASSWORD('password') WHERE User='root';

Avviare MySQL utilizzando:

sudo service mysql start

o

sudo /usr/local/mysql/support-files/mysql.server start

la tua nuova password è "password".


3
Per favore, NON in questo modo! La risposta di @ Divz è più sicura. Citando il documento su --skip-grant-tables: Questo consente a chiunque di connettersi senza password e con tutti i privilegi [...] Poiché non è sicuro, [...] utilizzare --skip-grant-tablesinsieme a --skip-networkingper impedire ai client remoti di connettersi. oh, e anche questo non ha funzionato per me. Ecco perché sono venuto qui: p
Balmipour,

1
Se vai in quel modo , sì. Non ha funzionato per me, e seguire la risposta di @ Divz mi sembra molto più facile, comunque --quello che suggerirei è usare dpkg --get-selections | grep mysql-server-per ottenere la tua versione MySQL esatta, quindi vai su sudo dpkg-reconfigure mysql-server-5.x (sostituisci 5 .x con la versione del tuo server, btw). Ho commentato la risposta di @ Divz con questa precisione, ma è mascherato dai numerosi commenti "grazie".
Balmipour,

4
aggiorna user set authentication_string = password ('1111') dove user = 'root';
Dejell,

2
In realtà ha funzionato ... le altre soluzioni mi davano ancora lo stesso errore.
eddy147,

2
Da MySQL 5.7.6 la colonna Password è stata rinominata "authentication_string" Qui puoi leggere di più al riguardo: bugs.mysql.com/bug.php?id=76655
IberoMedia,

55

So che questa è una vecchia domanda, ma penso che questo potrebbe aiutare qualcuno. Di recente ho avuto lo stesso problema, ma nel mio caso ricordo bene la mia password ma continuava a darmi lo stesso errore. Ho provato così tante soluzioni ma ancora nessuna mi ha aiutato, quindi ho provato questo

mysql -u root -p 

dopo di che ti chiede una password come questa

Enter password: 

e poi ho inserito la password che ho usato. È tutto


3
Strano che questo abbia aiutato dopo giorni di ricerche.
girish_vr

Bello da sapere @girish_vr
XY-JOE

Ha funzionato per me! La mia versione di mysql-server è: Versione server: 8.0.13 MySQL Community Server - GPL
kaspiotr

Questo mi ha aiutato, che è incredibilmente stupido da parte di MySQL che non riesco ancora a crederci.
wscourge,

39

All'avvio iniziale del server si verifica quanto segue, dato che la directory dei dati del server è vuota:

  • Il server è inizializzato.
  • Il certificato SSL e i file delle chiavi vengono generati nella directory dei dati.
  • Il plug-in validate_password è installato e abilitato.
  • Viene creato l'account superutente 'root' @ 'localhost'. La password per il superutente è impostata e memorizzata nel file di registro degli errori.

Per rivelarlo, usa il seguente comando:

shell> sudo grep 'temporary password' /var/log/mysqld.log

Cambia la password di root il più presto possibile accedendo con la password temporanea generata e imposta una password personalizzata per l'account superutente:

shell> mysql -u root -p #Login to root user with some password

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass5!'; 

16
Sembrava promettente, ma non funziona per me. Quando corro sudo grep 'temporary password' /var/log/mysqld.logricevo/var/log/mysqld.log: No such file or directory
Eric Hepperle - CodeSlayer2010 il

4
Prova sudo grep 'temporary password' /var/log/mysql/error.log. La soluzione @Lahiru ha funzionato per me.
Artemisiano,

17
Ho provato sudo grep 'password temporanea' /var/log/mysql/error.log ma non restituisce nulla.
studente

2
Prova shell> sudo grep 'password' /var/log/mysql/error.log. Ha funzionato per me, ma ottengo: root @ localhost viene creato con una password vuota! Si prega di considerare di disattivare l'opzione --initialize-insecure. La mia versione mysql è: Ver 8.0.13 per Linux su x86_64 (MySQL Community Server - GPL)
kaspiotr

1
@EnginYilmaz perché suggerisci un comando mysql quando il problema è che mysql non è nemmeno accessibile?
R-obert,

34

se il problema persiste, provare a forzare la modifica del passaggio

/etc/init.d/mysql stop

mysqld_safe --skip-grant-tables &

mysql -u root

Configura la nuova password dell'utente root di MySQL

use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;

Arresta il server MySQL:

/etc/init.d/mysql stop

Avviare il server MySQL e testarlo:

mysql -u root -p

1
Grazie. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)stava anche affliggendo il mio server. Anche 'mysqld_safe' non è riuscito fino a quando ho fatto un 'killall mysqld' DOPO il tuo passaggio 1.
Marcos,

Per favore, NON in questo modo! La risposta di @ Divz è più sicura. Citando il documento su --skip-grant-tables: Questo consente a chiunque di connettersi senza password e con tutti i privilegi [...] Poiché non è sicuro, [...] utilizzare --skip-grant-tablesinsieme a --skip-networkingper impedire ai client remoti di connettersi. oh, e anche questo non ha funzionato per me. Ecco perché sono venuto qui: p
Balmipour,

2
Mi sta dando: ERRORE 1054 (42S22): colonna sconosciuta "password" nella "lista dei campi"
MD. Mohiuddin Ahmed il

Controlla la risposta di @Anshu è un modo più sicuro di
gestirlo

1
@ MD.MohiuddinAhmed Devi utilizzare la versione più recente di mysql-server. Fare riferimento questa risposta: stackoverflow.com/a/31122246/6242649
Udayraj Deshmukh

32

Succede quando manca la password.

I passaggi per cambiare la password quando hai dimenticato:

  1. Arresta MySQL Server (su Linux):

    sudo systemctl stop mysql
  2. Avviare il database senza caricare le tabelle delle sovvenzioni o abilitare la rete:

    sudo mysqld_safe --skip-grant-tables --skip-networking &

    La e commerciale alla fine di questo comando farà funzionare questo processo in
    background in modo che tu possa continuare a usare il tuo terminale ed eseguire #mysql -u root, non chiederà la password.

    Se ricevi un errore come il seguente:

    2018-02-12T08: 57: 39.826071Z La directory mysqld_safe '/ var / run / mysqld' per il
    file socket UNIX non esiste. mysql -u root ERROR 2002 (HY000): Impossibile connettersi al server MySQL locale tramite socket
    '/var/run/mysqld/mysqld.sock' (2) [1] + Exit 1

  3. Crea directory di servizio MySQL.

    sudo mkdir /var/run/mysqld

    Autorizzare l'utente MySQL a scrivere nella directory di servizio.

    sudo chown mysql: /var/run/mysqld
  4. Eseguire lo stesso comando nel passaggio 2 per eseguire mysql in background.

  5. Esegui mysql -u root otterrai la console mysql senza inserire la password.

    Esegui questi comandi

    FLUSH PRIVILEGES;

    Per MySQL 5.7.6 e versioni successive

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

    Per MySQL 5.7.5 e precedenti

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

    Se il comando ALTER USER non funziona, utilizzare:

    UPDATE mysql.user SET authentication_string = PASSWORD('new_password')     WHERE User = 'root' AND Host = 'localhost';

Adesso esci

  1. Per interrompere l'istanza avviata manualmente

    sudo kill `cat /var/run/mysqld/mysqld.pid`
  2. Riavvia mysql

    sudo systemctl start mysql

2
Nel mio caso, devo modificare il passaggio 6 comesudo kill `sudo cat /var/run/mysqld/mysqld.pid`
kolunar il

1
Questo è quello che ha funzionato per me. Nel passaggio 5, utilizzare 1. USER 2. Per modificare la password, utilizzare -> aggiorna set di utenti
Bikram,

1
Questa è la soluzione migliore, ho potuto scoprire. Utilizzo di "5.7.26 MySQL Community Server (GPL)" su macOS Mojave su un modello MBP '15. Ho dovuto interrompere Mysql da System Preference, quindi ho seguito i passaggi 2 e 5. E poi ho dovuto terminare il processo MySQL cercando il PID usando ps -ef | grep mysql.
cspider,

12

Mi sono imbattuto in questo fastidioso problema e ho trovato molte risposte che non funzionavano. La migliore soluzione che ho trovato è stata quella di disinstallare completamente mysql e reinstallarlo. Al momento della reinstallazione si imposta una password di root e questo risolve il problema.


sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-5.5 mysql-client-core-5.5
sudo rm -rf /etc/mysql /var/lib/mysql
sudo apt-get autoremove
sudo apt-get autoclean

Ho trovato questo codice altrove, quindi non mi merito. Ma funziona Per installare mysql dopo averlo disinstallato penso che digital ocean abbia un buon tutorial su di esso. Dai un'occhiata alla mia idea per questo.
https://gist.github.com/JamesDaniel/c02ef210c17c1dec82fc973cac484096


12

Sto usando Ubuntu-16.04: mysql installato - 5.7. Ho avuto lo stesso problema: accesso negato per l'utente root.

Ho provato i passaggi seguenti:

  1. dpkg --get-selections | grep mysql (per ottenere la versione di mysql).

  2. dpkg-reconfigure mysql-server-5.7

  3. mysql -u root -p

Senza -p che non ti chiede di chiedere la password. Una volta entrato, puoi creare un utente con una password procedendo come segue:

CREATE USER 'your_new_username'@'your-hostname' IDENTIFIED BY 'your-password';

GRANT ALL PRIVILEGES ON *.* to 'your_new_username'@'your-hostname' WITH GRANT OPTION;

Esci dalla radice e accedi da quello che hai dato sopra.

mysql -u <your_new_username> -p

Per qualche motivo, la semplice digitazione di mysql non funziona. AFFATTO. Suggerisco di prendere l'abitudine di usarlo mysql -u <name> -p.


8

basta entrare nel terminal

mysql -u root -p. di quanto ti chiederà la password


8

Se nessuna delle altre risposte funziona per te e hai ricevuto questo errore:

mysqld_safe Logging to '/var/log/mysql/error.log'.
mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
[1]+  Exit 1                  sudo mysqld_safe --skip-grant-tables

Seguire i comandi seguenti passo dopo passo fino a quando non si reimposta la password:

# Stop Your Server First
sudo service mysql stop

# Make MySQL service directory.
sudo mkdir /var/run/mysqld

# Give MySQL permission to work with the created directory
sudo chown mysql: /var/run/mysqld

# Start MySQL, without permission and network checking
sudo mysqld_safe --skip-grant-tables --skip-networking &

# Log in to your server without any password.
mysql -u root mysql


# Update the password for the root user:
UPDATE mysql.user SET authentication_string=PASSWORD('YourNewPasswordBuddy'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';

#if you omit (AND Host='localhost') section, it updates the root pass regardless of its host

FLUSH PRIVILEGES;
EXIT;

#kill mysqld_safe process
sudo service mysql restart

#Now you can use your new password to login to your Server
mysql -u root -p

#take note for remote access you should create a remote user and then grant all privileges to that remote user

Questa è la risposta corretta per mysql 5.7 anche in Ubuntu 18.04 LTS. Grazie
Dhiraj il

Per tutto l'indirizzo remoto: sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf -> bind-address = 0.0.0.0
Mehdi

7

Ho installato MySQL come utente root ( $SUDO) e ho riscontrato lo stesso problema
Ecco come l'ho risolto-

  1. $ sudo cat /etc/mysql/debian.cnf

Questo mostrerà i dettagli come-

# Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = GUx0RblkD3sPhHL5 socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = debian-sys-maint password = GUx0RblkD3sPhHL5 socket = /var/run/mysqld/mysqld.sock

Sopra possiamo vedere la password appena ci accingiamo a utilizzare(GUx0RblkD3sPhHL5) che nel esortati

  1. mysql -u debian-sys-maint -p Enter password:
    ora fornire la password ( GUx0RblkD3sPhHL5 ).

  2. Ora exitda MySQL e accedi di nuovo come-

    mysql -u root -p Enter password:
    Ora fornisci una nuova password. Questo è tutto, abbiamo una nuova password per ulteriori usi.

Ha funzionato per me, spero che aiuti anche te!


6

Leggere la documentazione ufficiale: Mysql: come reimpostare la password di root

Se hai accesso al terminale:

MySQL 5.7.6 e versioni successive:

$ mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

MySQL 5.7.5 e precedenti:

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

1
Dà: ERRORE 1131 (42000): stai usando MySQL come utente anonimo e gli utenti anonimi non sono autorizzati a cambiare password
MD. Mohiuddin Ahmed il

1
È normale. Il tuo utente è anonimo. Devi eseguire> mysql -u {your_username}
d.danailov il

3

Sto usando mysql-5.7.12-osx10.11-x86_64.dmg in Mac OSX

Il processo di installazione imposta automaticamente una password temporanea per l'utente root. Dovresti salvare la password. La password non può essere recuperata.

Segui le istruzioni

  1. Vai a cd /usr/local/mysql/bin/
  2. Inserisci la password temporanea (che assomiglierebbe a "tsO07JF1 => 3")
  3. Dovresti ricevere mysql> prompt.
  4. Esegui, SET PASSWORD FOR 'root'@'localhost' = PASSWORD('{YOUR_PASSWORD}');se desideri impostare la password: "root", il comando sarebbe,SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
  5. Correre ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
  6. Correre exit
  7. Correre ./mysql -u root -p
  8. Digita la tua password Nel mio caso, digitare "root" (senza virgolette)
  9. È tutto.

Per comodità, è necessario aggiungere "/usr/local/mysql/bin"al PERCORSO

Ora da qualsiasi luogo puoi digitare ./mysql -u root -pe quindi digitare la password e otterrai mysql> prompt.

Spero che sia d'aiuto.


3

La risposta può sembrare sciocca, ma dopo aver perso ore di tempo, è così che l'ho fatta funzionare

mysql -u root -p

Ho ricevuto il messaggio di errore

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Anche se stavo digitando la password corretta (la password temporanea che ottieni quando installi mysql per la prima volta)

Ho capito bene quando ho inserito la password quando il prompt della password lampeggiava


2

se il problema persiste, provare a forzare la modifica del passaggio

Arresta MySQL Server (su Linux):

/etc/init.d/mysql stop

Arresta MySQL Server (su Mac OS X):

mysql.server stop

Avviare il demone mysqld_safe con --skip-grant-tables

mysqld_safe --skip-grant-tables &
mysql -u root

Configura la nuova password dell'utente root di MySQL

use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;

Arresta MySQL Server (su Linux):

/etc/init.d/mysql stop

Arresta MySQL Server (su Mac OS X):

mysql.server stop

Avviare il servizio server MySQL e provare ad accedere da root:

mysql -u root -p

1

BY la password predefinita sarà nulla, quindi devi cambiare la password procedendo come segue.

connettiti a mysql

root # mysql

Usa mysql

mysql> aggiorna user set password = PASSWORD ('root') dove User = 'root'; Infine, ricarica i privilegi:

mysql> privilegi flush; mysql> esci



1

In Ubuntu 16.04 (MySQL versione 5.7.13) sono stato in grado di risolvere il problema con i passaggi seguenti:

  1. Seguire le istruzioni dalla sezione B.5.3.2.2 Reimpostazione della password di root: Manuale di riferimento MySQL 5.7 per sistemi Unix e Unix-Like Systems

  2. Quando ho provato #sudo mysqld_safe --init-file = / home / me / mysql-init e non è riuscito. L'errore era in /var/log/mysql/error.log

    10-08-2016T11: 41: 20.421946Z 0 [Nota] Esecuzione dell'esecuzione del file init_file '/ home / me / mysql / mysql-init'. 10-08-2016T11: 41: 20.422070Z 0 [ERRORE] / usr / sbin / mysqld: File '/ home / me / mysql / mysql-init' non trovato (Errcode: 13 - Autorizzazione negata) 10-08-2016T11: 41: 20.422096Z 0 [ERRORE] Interruzione

L'autorizzazione di file di mysql-init non era il problema, è necessario modificare l'autorizzazione apparmor

  1. Modifica di #sudo vi /etc/apparmor.d/usr.sbin.mysqld

    ....
      /var/log/mysql/ r,
      /var/log/mysql/** rw,
    
    
    # Allow user init file
      /home/pranab/mysql/* r,
    
      # Site-specific additions and overrides. See local/README for details.
      #include <local/usr.sbin.mysqld>
    }
  2. #Sudo /etc/init.d/apparmor ricaricare

  3. Avvia mysqld_safe di nuovo, prova il passaggio 2 sopra. Controllare /var/log/mysql/error.log assicurarsi che non vi siano errori e che mysqld sia stato avviato correttamente

  4. Esegui #mysql -u root -p

    Inserire la password:

Immettere la password specificata in mysql-init. Ora dovresti essere in grado di accedere come root.

  1. Chiudi mysqld_safe di #sudo mysqladmin -u root -p shutdown

  2. Avvia mysqld in modo normale con #sudo systemctl avvia mysql


1

Se hai MySQL come parte di un'immagine Docker (diciamo sulla porta 6606) e un'installazione Ubuntu (sulla porta 3306) che specifica la porta non è sufficiente:

mysql -u root -p -P 6606

getterà:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

mentre sta tentando di connettersi a localhost per impostazione predefinita, specificando il tuo IP locale risolve il problema:

mysql -u root -p -P 6606 -h 127.0.0.1

0

Nelle recenti versioni di MySQL non è presente passwordnella mysql.usertabella.

Quindi devi eseguire ALTER USER. Inserisci questo comando a una riga nel file.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

Ed eseguilo come file init (come utente root o mysql)

mysqld_safe --init-file=/home/me/mysql-init &

Il server MySQL deve essere arrestato per l'avvio mysqld_safe.

Inoltre, potrebbe esserci un problema con le autorizzazioni apparmor per caricare questo file init. Maggiori informazioni qui https://blogs.oracle.com/jsmyth/entry/apparmor_and_mysql


0

Se non hai ancora impostato la password, quindi esegui mysql -uroot, funziona per me.


0

Su Mac, se hai problemi ad accedere con la prima password che ti è stata fornita durante l'installazione, forse puoi semplicemente uccidere il processo mysql e poi provare.

Quindi: 1- esegui il seguente comando per trovare il PID di mysql:

ps -aef | grep mysql | grep -v grep

2- uccidere il processo:

kill -15 [process id] 

Quindi puoi accedere con la password iniziale usando questo comando:

mysql -uroot -p

Che ti chiede di inserire la password. Basta inserire la password iniziale.


0

Ho avuto un problema simile:

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

Ma nel mio caso, la causa era davvero sciocca. Ho copiato il comando da un documento di Word e il problema era che un trattino non aveva il codice ASCII 2D ma Unicode E28093.

Senso vietato:

mysql -u root pxxxx

Giusta direzione:

mysql -u root -pxxxx

Entrambi sembrano uguali ma non uguali (provalo, copia e incolla sostituendo la tua password).

Di fronte a questo tipo di errore, si consiglia di provare a digitare il comando invece di copiare e incollare.


0

Ho provato con la risposta corretta di @Lahiru, ma non ha funzionato con il server MySQL versione 8.0.16 (Community) su macOS Mojave.

Seguito le istruzioni di Sameer Choudhary sopra e con alcune modifiche, sono stato in grado di cambiare la password di root e abilitare l'accesso root da localhost.

Aggiornamento: tutti questi non sono necessari, se si sta installando su Mac OS usando homebrew: "brew install mysql"


0

Ho avuto questo problema con Ubuntu 18.04 LTS e Mysql Server versione 5.7.27-0ubuntu0.18.04.1 (Ubuntu).

La mia soluzione era (in esecuzione come root con sudo -i)

mysql <<-EOSQL
  use mysql;
  update user set plugin="mysql_native_password" where User='root';
  FLUSH PRIVILEGES ;
EOSQL

mysqladmin -u root password new_pw

0

Mi sono anche imbattuto nello stesso problema, quello che ho fatto è stato

1) Apri il tuo cmd

2) Passare a C: \ Programmi \ MySQL \ MySQL Server 8.0 \ bin> (dove MySQL Server 8.0 potrebbe essere diverso a seconda del server installato)

3) Quindi inserisci il seguente comando mysql -u root -p

4) Chiederò la password ... semplicemente premi invio, poiché a volte la password che hai inserito durante l'installazione è cambiata da vuota.

ora puoi semplicemente accedere al database

Questa soluzione ha funzionato per me sulla piattaforma Windows


0

Mentre la risposta migliore (w / mysqladmin) ha funzionato su Mac 10.15, allora non ha funzionato su Ubuntu. Quindi ho provato molte delle altre opzioni tra cui l'avvio sicuro per mysql, nessuno ha funzionato. Aggiungendo così una nuova risposta.

Almeno per la versione che ho ottenuto 5.7.28-0ubuntu0.18.04.4mancavano le risposte IDENTIFIED WITH mysql_native_password. 5.7.28 è l'impostazione predefinita sull'attuale LTS e quindi dovrebbe essere l'impostazione predefinita per la maggior parte dei nuovi nuovi sistemi (fino all'uscita del 20.04 LTS).

Trovato: https://www.digitalocean.com/community/questions/can-t-set-root-password-mysql-server e ora applicato

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_pass_here';

che funziona.


0

L'errore che ho riscontrato è stato

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

si è verificato un problema con la porta in esecuzione.

Di default il mysql è in esecuzione port 3306.

Puoi verificarlo eseguendo

  • in un sistema a 32 bit:

    sudo /opt/lampp/manager-linux.run

  • in un sistema a 64 bit:

    sudo /opt/lampp/manager-linux-x64.run

e fare clic sul configurepulsante

pannello di controllo xampp

Nel mio caso la porta era in esecuzione su 3307 e il comando che ho usato era

mysql -u root -p -P 3307 -h 127.0.0.1

0

Nel mio caso stavo cercando di passare a comando su un contenitore. Nel qual caso è stata interpretata solo la prima parola. Assicurati di non essere in esecuzione:

mysql

al contrario di:

mysql -uroot -ppassword schemaname

forse prova a citare:

'mysql -uroot -ppassword schemaname'
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.