sql >> Database >  >> RDS >> Mysql

Reset het root-wachtwoord van de MySQL-server

Standaard wordt MySQL Server geïnstalleerd met root-superuser zonder wachtwoord. U kunt als root verbinding maken met de MySQL-server zonder dat u een wachtwoord nodig heeft of door een leeg wachtwoord in te voeren. Als u echter het wachtwoord voor root heeft ingesteld en u bent het wachtwoord vergeten of kunt u niet meer oproepen, dan moet u het root-wachtwoord voor MySQL opnieuw instellen.

MySQL Reference Manual heeft gedetailleerde stappen voor het opnieuw instellen van het wachtwoord voor root, zoals hieronder:

De procedure onder Windows:

  1. Log in op het Windows-systeem waarop MySQL draait als beheerder.
  2. 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.

  3. 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;
    
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
    
    Save the file with any name. For this example the file will be C:\mysql-init.txt.
  4. Open a console window to get to the DOS command prompt: Start Menu -> Run -> cmd
  5. 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

  6. 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.
  7. 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:

  1. Log in op het Unix-systeem als de Unix-rootgebruiker of als dezelfde gebruiker als de mysqld-server.
  2. 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.

  3. 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.

  4. 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.

  5. 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):

  1. Stop mysqld en start het opnieuw met de --skip-grant-tables --user=root opties (Windows-gebruikers laten het --user=root gedeelte weg).
  2. Maak verbinding met de mysqld-server met dit commando:
    shell> mysql -u root
  3. 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.

  4. U zou verbinding moeten kunnen maken met het nieuwe wachtwoord.


  1. Hoe verbinding maken met externe Oracle DB met PL/SQL Developer?

  2. SELECT query retourneer 1 rij van elke groep

  3. 2 manieren om rijen met alfanumerieke tekens terug te geven in MySQL

  4. Heb geen databasevergrendeling! op android