Acolo te duci din nou. Ai rasucit o mașină virtuală pentru a face unele teste, instalat MySQL folosind preferate package manager, a început server, și nu a reușit să vă conectați:

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

Începând cu versiunea 5.,7, MySQL este sigur-by-default:

  • o întâmplare parola de root este generat la instalare; aveți nevoie pentru a citi acest lucru parola de conectare la server
  • trebuie să schimbe parola la prima conectare
  • nu puteți utiliza un gol parola pentru a validate_password plugin

Acesta este bun de securitate-înțelept. Dar dacă instalați doar MySQL pe un VM local pentru testarea proprie, acest lucru poate deveni foarte enervant.pentru a elimina parola rădăcină MySQL, trebuie doar să rulați următorul script imediat după instalarea și pornirea serverului MySQL:

pe MySQL 5.,7:

On MySQL 8.0:

Note: you must execute this script as root.,

script-ul efectuează următoarele acțiuni:

  • citește parola temporară din fișierul jurnal
  • schimbă parola la o altă parolă temporară care trece validate_password controale
  • dezinstalează validate_password plugin (sau componentă în MySQL 8)
  • stabilește un gol parola

acum Vă puteți conecta fără parolă:

Fii atent că acest lucru lasă de instalare MySQL negarantate, tu nu ar trebui să folosească acest lucru pentru ceva serios!,

o alternativă sigură

Dacă utilizați în principal MySQL din linia de comandă, puteți păstra contul root protejat de o parolă, evitând în același timp inconvenientul de a fi nevoit să furnizați parola în linia de comandă.

Doar a crea un ~/.my.cnf fișier:


user = root
password = xxx

acum puteți doar să tastați mysql, MySQL si clientul se va conecta automat cu aceste acreditări.