där går du igen. Du snurrade bara upp en virtuell maskin för att göra några tester, installerade MySQL med din favorit pakethanterare, startade servern och misslyckades med att ansluta:

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

Sedan version 5.,7, MySQL är säker-som standard:

  • ett slumpmässigt rotlösenord genereras vid installationen; Du måste läsa detta lösenord från serverloggen
  • Du måste ändra det här lösenordet första gången du ansluter
  • Du kan inte använda ett tomt lösenord på grund av validate_password plugin

det här är allt bra säkerhetsmässigt. Men om du bara installerar MySQL på en lokal VM för din egen testning kan det bli riktigt irriterande.

för att ta bort MySQL root-lösenordet, kör bara följande skript direkt efter installation och start av MySQL-servern:

på MySQL 5.,7:

On MySQL 8.0:

Note: you must execute this script as root.,

skriptet utför följande åtgärder:

  • läser det tillfälliga lösenordet från loggfilen
  • ändrar det här lösenordet till ett annat tillfälligt lösenord som passerarvalidate_password kontroller
  • avinstallerarvalidate_password plugin (eller komponent i MySQL 8)
  • ställer in ett tomt lösenord

Du kan nu ansluta utan lösenord:

var försiktig så att detta lämnar din MySQL-installation osäker, Du bör inte använda detta för något allvarligt!,

ett säkert alternativ

om du huvudsakligen använder MySQL från kommandoraden kan du hålla root – Kontot skyddat av ett lösenord, samtidigt som du undviker besväret att behöva ange lösenordet på kommandoraden.

skapa bara en~/.my.cnf fil:


user = root
password = xxx

Du kan nu bara skrivamysql, och MySQL-klienten loggar automatiskt in med dessa referenser.