sql >> Database teknologi >  >> RDS >> Mysql

Nulstil root-adgangskoden til MySQL Server

Som standard vil MySQL Server blive installeret med root-superbruger uden adgangskode. Du kan oprette forbindelse til MySQL-serveren som root uden at kræve adgangskode eller ved at indtaste en tom adgangskode. Men hvis du har indstillet adgangskoden til root og glemmer eller ude af stand til at genkalde adgangskoden, bliver du nødt til at nulstille root-adgangskoden til MySQL.

MySQL Reference Manual har detaljerede trin til, hvordan du nulstiller adgangskoden til root, som er som nedenfor:

Proceduren under Windows:

  1. Log på Windows-systemet, hvor MySQL kører som administrator.
  2. Stop MySQL-serveren, hvis den kører. For en server, der kører som en Windows-tjeneste, skal du gå til Services Manager:

    Startmenu -> Kontrolpanel -> Administrative værktøjer -> Tjenester

    Find derefter MySQL-tjenesten på listen, og stop den.

    Hvis din server ikke kører som en tjeneste, skal du muligvis bruge Task Manager for at tvinge den til at stoppe.

  3. Opret en tekstfil og placer følgende kommandoer i den hver på en enkelt linje:
    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

    Indholdet af filen, der er navngivet af --init-file-indstillingen, udføres ved serverstart og ændrer root-adgangskoden. Når serveren er startet, skal du slette C:\mysql-init.txt.

    Hvis du installerede MySQL ved hjælp af MySQL-installationsguiden, skal du muligvis angive en --defaults-file-indstilling:

    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

    Den passende --defaults-file-indstilling kan findes ved hjælp af Services Manager:

    Startmenu -> Kontrolpanel -> Administrative værktøjer -> Tjenester

    Find MySQL-tjenesten på listen, højreklik på den, og vælg indstillingen Egenskaber. Feltet Sti til eksekverbar indeholder indstillingen --defaults-fil. Sørg for at angive --init-file-argumentet med den fulde systemsti til filen, uanset din nuværende arbejdsmappe

  6. Stop MySQL-serveren, og genstart den derefter i normal tilstand igen. Hvis MySQL-serveren køres som en tjeneste, skal du starte den fra vinduet Windows Services. Hvis du starter serveren manuelt, skal du bruge den kommando, du normalt bruger.
  7. Opret forbindelse til MySQL-serveren ved at bruge den nye adgangskode. Husk også at slette filen mysql-init.txt, når du er færdig.

For Unix- og Linux-miljøer er proceduren for nulstilling af root-adgangskoden som følger:

  1. Log på Unix-systemet som enten Unix root-bruger eller som den samme bruger, som mysqld-serveren kører som.
  2. Find .pid-filen, der indeholder serverens proces-id. Den nøjagtige placering og navn på denne fil afhænger af din distribution, værtsnavn og konfiguration. Almindelige placeringer er /var/lib/mysql/, /var/run/mysqld/ og /usr/local/mysql/data/. Generelt har filnavnet filtypenavnet .pid og begynder med enten mysqld eller systemets værtsnavn.

    Stop MySQL-serveren ved at sende en normal kill (ikke kill -9) til mysqld-processen ved at bruge stinavnet til .pid-filen i følgende kommando:

    shell> kill `cat /mysql-data-directory/host_name.pid`

    Bemærk brugen af ​​backticks i stedet for fremadrettede citater med kat-kommandoen; disse bevirker, at output fra kat erstattes af kill-kommandoen.

  3. Opret en tekstfil og placer følgende kommando i den på en enkelt linje:
    UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
    FLUSH PRIVILEGES;

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');

    Gem filen med et hvilket som helst navn. For dette eksempel vil filen være ~/mysql-init.

  4. Genstart MySQL-serveren med den specielle --init-file=~/mysql-init mulighed:
    shell> mysqld_safe --init-file=~/mysql-init &

    Indholdet af init-filen udføres ved serverstart, hvilket ændrer root-adgangskoden. Efter at serveren er startet med succes, bør du slette ~/mysql-init.

  5. Genstart serveren normalt. Opret forbindelse til MySQL-serveren ved at bruge den nye adgangskode.

Alternativt kan mysql-klienten på enhver platform bruges til at indstille den nye adgangskode, selvom det er en mindre sikker måde at nulstille adgangskoden på (detaljeret instruktion her):

  1. Stop mysqld og genstart det med --skip-grant-tables --user=root-indstillingerne (Windows-brugere udelader --user=root-delen).
  2. Opret forbindelse til mysqld-serveren med denne kommando:
    shell> mysql -u root
  3. Udfør følgende sætninger i mysql-klienten:
    mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd')
        ->                   WHERE User='root';
    mysql> FLUSH PRIVILEGES;

    Erstat 'newpwd' med den faktiske root-adgangskode, som du vil bruge.

  4. Du bør være i stand til at oprette forbindelse ved hjælp af den nye adgangskode.


  1. Opbygning af en meget tilgængelig database til Moodle ved hjælp af MariaDB (replikering og MariaDB-klynge)

  2. Hvordan ændres MySQL-datamappe?

  3. Skift primær nøgle

  4. Sådan fungerer SET ROWCOUNT i SQL Server