MySQL Reference Manual heeft gedetailleerde stappen voor het opnieuw instellen van het wachtwoord voor root, zoals hieronder:
De procedure onder Windows:
- Log in op het Windows-systeem waarop MySQL draait als beheerder.
- Stop de MySQL-server als deze actief is. Voor een server die draait als een Windows-service, ga naar de Services manager:
Startmenu -> Configuratiescherm -> Systeembeheer -> Services
Zoek vervolgens de MySQL-service in de lijst en stop deze.
Als uw server niet als een service draait, moet u mogelijk Taakbeheer gebruiken om deze te dwingen te stoppen.
- Maak een tekstbestand en plaats de volgende commando's daarin elk op een enkele regel:
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
De inhoud van het bestand dat wordt genoemd door de optie --init-file wordt uitgevoerd bij het opstarten van de server, waarbij het root-wachtwoord wordt gewijzigd. Nadat de server succesvol is gestart, moet u C:\mysql-init.txt verwijderen.
Als u MySQL hebt geïnstalleerd met behulp van de MySQL-installatiewizard, moet u mogelijk een --defaults-file-optie opgeven:
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
De juiste --defaults-file instelling kan worden gevonden met behulp van de Services Manager:
Startmenu -> Configuratiescherm -> Systeembeheer -> Services
Zoek de MySQL-service in de lijst, klik er met de rechtermuisknop op en kies de optie Eigenschappen. Het veld Pad naar uitvoerbaar bevat de instelling --defaults-file. Zorg ervoor dat het argument --init-file het volledige systeempad naar het bestand bevat, ongeacht uw huidige werkdirectory
- Stop de MySQL-server en start deze vervolgens opnieuw in de normale modus. Als de MySQL-server als een service wordt uitgevoerd, start u deze vanuit het venster Windows Services. Als je de server handmatig start, gebruik dan het commando dat je normaal ook gebruikt.
- Maak verbinding met de MySQL-server met het nieuwe wachtwoord. Vergeet ook niet om het mysql-init.txt-bestand te verwijderen als u klaar bent.
Voor Unix- en Linux-omgevingen is de procedure voor het opnieuw instellen van het root-wachtwoord als volgt:
- Log in op het Unix-systeem als de Unix-rootgebruiker of als dezelfde gebruiker als de mysqld-server.
- Zoek het .pid-bestand dat de proces-ID van de server bevat. De exacte locatie en naam van dit bestand is afhankelijk van uw distributie, hostnaam en configuratie. Veelvoorkomende locaties zijn /var/lib/mysql/, /var/run/mysqld/ en /usr/local/mysql/data/. Over het algemeen heeft de bestandsnaam de extensie .pid en begint met mysqld of de hostnaam van het systeem.
Stop de MySQL-server door een normale kill (niet kill -9) naar het mysqld-proces te sturen, met behulp van de padnaam van het .pid-bestand in de volgende opdracht:
shell> kill `cat /mysql-data-directory/host_name.pid`
Let op het gebruik van backticks in plaats van forward quotes met het cat commando; deze zorgen ervoor dat de uitvoer van cat wordt vervangen door het kill-commando.
- Maak een tekstbestand en plaats de volgende opdracht erin op een enkele regel:
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; FLUSH PRIVILEGES;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
Sla het bestand op met een willekeurige naam. Voor dit voorbeeld is het bestand ~/mysql-init.
- Herstart de MySQL-server met de speciale --init-file=~/mysql-init optie:
shell> mysqld_safe --init-file=~/mysql-init &
De inhoud van het init-bestand wordt uitgevoerd bij het opstarten van de server, waarbij het root-wachtwoord wordt gewijzigd. Nadat de server succesvol is gestart, moet u ~/mysql-init verwijderen.
- Start de server normaal opnieuw op. Maak verbinding met de MySQL-server met het nieuwe wachtwoord.
Als alternatief kan op elk platform de mysql-client worden gebruikt om het nieuwe wachtwoord in te stellen, hoewel het een minder veilige manier is om het wachtwoord opnieuw in te stellen (gedetailleerde instructie hier):
- Stop mysqld en start het opnieuw met de --skip-grant-tables --user=root opties (Windows-gebruikers laten het --user=root gedeelte weg).
- Maak verbinding met de mysqld-server met dit commando:
shell> mysql -u root
- Geef de volgende instructies op in de mysql-client:
mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd') -> WHERE User='root'; mysql> FLUSH PRIVILEGES;
Vervang 'newpwd' door het daadwerkelijke root-wachtwoord dat je wilt gebruiken.
- U zou verbinding moeten kunnen maken met het nieuwe wachtwoord.