sql >> Databáze >  >> RDS >> Mysql

Resetujte kořenové heslo serveru MySQL

Ve výchozím nastavení bude MySQL Server nainstalován s root superuživatelem bez jakéhokoli hesla. K serveru MySQL se můžete připojit jako root bez nutnosti hesla nebo zadáním prázdného hesla. Pokud jste však nastavili heslo pro root a zapomněli jste nebo si jej nemůžete vyvolat, budete muset resetovat heslo root pro MySQL.

Referenční příručka MySQL obsahuje podrobné kroky, jak resetovat heslo pro uživatele root, které jsou uvedeny níže:

Postup v systému Windows:

  1. Přihlaste se do systému Windows, kde běží MySQL, jako správce.
  2. Zastavte server MySQL, pokud je spuštěn. U serveru, který běží jako služba Windows, přejděte do Správce služeb:

    Nabídka Start -> Ovládací panely -> Nástroje pro správu -> Služby

    Poté v seznamu najděte službu MySQL a zastavte ji.

    Pokud váš server neběží jako služba, možná budete muset pomocí Správce úloh vynutit jeho zastavení.

  3. Vytvořte textový soubor a vložte do něj následující příkazy každý na jeden řádek:
    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

    Obsah souboru pojmenovaného volbou --init-file se spustí při spuštění serveru a změní se heslo uživatele root. Po úspěšném spuštění serveru byste měli odstranit C:\mysql-init.txt.

    Pokud jste nainstalovali MySQL pomocí Průvodce instalací MySQL, možná budete muset zadat volbu --defaults-file:

    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

    Příslušné nastavení souboru --defaults-file lze nalézt pomocí Správce služeb:

    Nabídka Start -> Ovládací panely -> Nástroje pro správu -> Služby

    Najděte v seznamu službu MySQL, klikněte na ni pravým tlačítkem myši a vyberte možnost Vlastnosti. Pole Cesta ke spustitelnému souboru obsahuje nastavení --defaults-file. Nezapomeňte zadat argument --init-file s úplnou systémovou cestou k souboru, bez ohledu na váš aktuální pracovní adresář

  6. Zastavte server MySQL a poté jej znovu spusťte v normálním režimu. Pokud je server MySQL spuštěn jako služba, spusťte ji z okna Služby systému Windows. Pokud server spouštíte ručně, použijte příkaz, který běžně používáte.
  7. Připojte se k serveru MySQL pomocí nového hesla. Po dokončení také nezapomeňte smazat soubor mysql-init.txt.

Pro prostředí Unix a Linux je postup resetování hesla root následující:

  1. Přihlaste se do systému Unix jako uživatel root nebo jako stejný uživatel, pod kterým běží server mysqld.
  2. Vyhledejte soubor .pid, který obsahuje ID procesu serveru. Přesné umístění a název tohoto souboru závisí na vaší distribuci, názvu hostitele a konfiguraci. Běžná umístění jsou /var/lib/mysql/, /var/run/mysqld/ a /usr/local/mysql/data/. Obecně má název souboru příponu .pid a začíná buď mysqld, nebo názvem hostitele systému.

    Zastavte server MySQL odesláním normálního zabití (nikoli kill -9) do procesu mysqld s použitím názvu cesty k souboru .pid v následujícím příkazu:

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

    Všimněte si použití zpětných uvozovek spíše než dopředných uvozovek u příkazu cat; ty způsobí nahrazení výstupu cat do příkazu kill.

  3. Vytvořte textový soubor a vložte do něj na jeden řádek následující příkaz:
    UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
    FLUSH PRIVILEGES;

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

    Uložte soubor s libovolným názvem. V tomto příkladu bude soubor ~/mysql-init.

  4. Restartujte server MySQL pomocí speciální možnosti --init-file=~/mysql-init:
    shell> mysqld_safe --init-file=~/mysql-init &

    Obsah init-souboru se spustí při spuštění serveru a změní se heslo uživatele root. Po úspěšném spuštění serveru byste měli odstranit ~/mysql-init.

  5. Restartujte server normálně. Připojte se k serveru MySQL pomocí nového hesla.

Alternativně lze na jakékoli platformě k nastavení nového hesla použít klienta mysql, i když je to méně bezpečný způsob resetování hesla (podrobný návod zde):

  1. Zastavte mysqld a restartujte jej pomocí --skip-grant-tables --user=root (uživatelé Windows vynechají část --user=root).
  2. Připojte se k serveru mysqld pomocí tohoto příkazu:
    shell> mysql -u root
  3. V klientovi mysql zadejte následující příkazy:
    mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd')
        ->                   WHERE User='root';
    mysql> FLUSH PRIVILEGES;

    Nahraďte 'newpwd' skutečným heslem uživatele root, které chcete použít.

  4. Měli byste být schopni se připojit pomocí nového hesla.


  1. Jak mohu použít operátory PostgreSQL JSON(B) obsahující otazník? přes JDBC

  2. Maximální využití paměti MySQL

  3. Co je předávání parametrů do SQL a proč to potřebuji?

  4. Zvýšení výkonu databáze o 400 %