MySQL Referensmanual har detaljerade steg för hur man återställer lösenordet för root som är enligt nedan:
Proceduren under Windows:
- Logga in på Windows-systemet där MySQL körs som administratör.
- Stoppa MySQL-servern om den körs. För en server som körs som en Windows-tjänst, gå till Tjänsthanteraren:
Startmeny -> Kontrollpanelen -> Administrativa verktyg -> Tjänster
Hitta sedan MySQL-tjänsten i listan och stoppa den.
Om din server inte körs som en tjänst kan du behöva använda Aktivitetshanteraren för att tvinga den att stoppa.
- Skapa en textfil och placera följande kommandon i den var och en på en rad:
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; FLUSH PRIVILEGES;
Save the file with any name. For this example the file will be C:\mysql-init.txt.SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
- Open a console window to get to the DOS command prompt: Start Menu -> Run -> cmd
- If MySQL is installed in C:\mysql. If MySQL is installed in another location, adjust the following commands accordingly.
At the DOS command prompt, execute this command:
C:\> C:\mysql\bin\mysqld-nt --init-file=C:\mysql-init.txt
Innehållet i filen som namnges av --init-file-alternativet exekveras vid serverstart, vilket ändrar root-lösenordet. Efter att servern har startat framgångsrikt bör du ta bort C:\mysql-init.txt.
Om du installerade MySQL med MySQL Installation Wizard, kan du behöva ange ett --defaults-file-alternativ:
C:\> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe" --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini" --init-file=C:\mysql-init.txt
Lämplig --defaults-file-inställning kan hittas med hjälp av Services Manager:
Startmeny -> Kontrollpanelen -> Administrativa verktyg -> Tjänster
Hitta MySQL-tjänsten i listan, högerklicka på den och välj alternativet Egenskaper. Fältet Sökväg till körbar fil innehåller inställningen --defaults-file. Var noga med att ange --init-file-argumentet med hela systemsökvägen till filen, oavsett din nuvarande arbetskatalog
- Stoppa MySQL-servern och starta om den i normalt läge igen. Om MySQL-servern körs som en tjänst, starta den från Windows Services-fönstret. Om du startar servern manuellt, använd det kommando du normalt använder.
- Anslut till MySQL-servern genom att använda det nya lösenordet. Kom också ihåg att ta bort filen mysql-init.txt när du är klar.
För Unix- och Linux-miljöer är proceduren för att återställa root-lösenordet som följer:
- Logga in på Unix-systemet som antingen Unix root-användare eller som samma användare som mysqld-servern körs som.
- Leta reda på .pid-filen som innehåller serverns process-ID. Den exakta platsen och namnet på denna fil beror på din distribution, värdnamn och konfiguration. Vanliga platser är /var/lib/mysql/, /var/run/mysqld/ och /usr/local/mysql/data/. I allmänhet har filnamnet filnamnstillägget .pid och börjar med antingen mysqld eller systemets värdnamn.
Stoppa MySQL-servern genom att skicka en normal kill (inte kill -9) till mysqld-processen, med hjälp av sökvägen till .pid-filen i följande kommando:
shell> kill `cat /mysql-data-directory/host_name.pid`
Notera användningen av backticks istället för framåtriktade citattecken med kommandot cat; dessa gör att utdata från cat ersätts med kill-kommandot.
- Skapa en textfil och placera följande kommando i den på en enda rad:
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; FLUSH PRIVILEGES;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
Spara filen med valfritt namn. För det här exemplet kommer filen att vara ~/mysql-init.
- Starta om MySQL-servern med det speciella alternativet --init-file=~/mysql-init:
shell> mysqld_safe --init-file=~/mysql-init &
Innehållet i init-filen körs vid serverstart, vilket ändrar root-lösenordet. Efter att servern har startat framgångsrikt bör du ta bort ~/mysql-init.
- Starta om servern normalt. Anslut till MySQL-servern genom att använda det nya lösenordet.
Alternativt, på vilken plattform som helst, kan mysql-klienten användas för att ställa in det nya lösenordet, även om det är ett mindre säkert sätt att återställa lösenordet (detaljerad instruktion här):
- Stoppa mysqld och starta om den med --skip-grant-tables --user=root-alternativen (Windows-användare utelämnar --user=root-delen).
- Anslut till mysqld-servern med detta kommando:
shell> mysql -u root
- Ge följande uttalanden i mysql-klienten:
mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd') -> WHERE User='root'; mysql> FLUSH PRIVILEGES;
Ersätt 'newpwd' med det faktiska root-lösenordet som du vill använda.
- Du bör kunna ansluta med det nya lösenordet.