Det du går igjen. Du bare spinned opp en virtuell maskin for å gjøre noen tester, installert MySQL ved hjelp av din favoritt package manager, startet serveren, og klarte ikke å koble seg til på:
$ mysql --user=root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Siden versjon 5.,7, MySQL er sikker-av-standard:
- et tilfeldig root-passordet er generert ved installasjon, du trenger å lese dette passordet fra server log
- du har til å endre dette passordet første gang du kobler
- du kan ikke bruke et tomt passord på grunn av validate_password plugin
Dette er alle gode sikkerhets-messig. Men hvis du bare skal installere MySQL på en lokal VM for din egen testing, dette kan bli veldig irriterende.
for Å fjerne MySQL root-passordet, bare kjør følgende script rett etter at du installerer og starter MySQL-server:
På MySQL 5.,7:
On MySQL 8.0:
Note: you must execute this script as root.,
skriptet utfører følgende handlinger:
- leser midlertidig passord fra loggfilen
- endringer i dette passordet til en annen midlertidig passord som passerer
validate_password
sjekker - avinstallerer
validate_password
plugin (eller en komponent i MySQL 8) - angir et tomt passord
Du kan nå koble til uten et passord:
Vær forsiktig at dette etterlater din MySQL installasjon usikret, bør du ikke bruke dette til noe alvorlig!,
En sikker alternative
Hvis du er i hovedsak bruk av MySQL fra kommandolinjen, kan du holde root
konto som er beskyttet av et passord, mens de fortsatt å unngå bryet med å måtte oppgi passordet på kommandolinjen.
Bare lage en ~/.my.cnf
file:
user = root
password = xxx
nå kan Du bare skrive inn mysql
, og MySQL-klienten vil automatisk logge seg på med disse legitimasjon.