MySQL je jedním z nejpopulárnějších systémů pro správu databází pro webové aplikace. MySQL má heslo root nebo heslo na úrovni správce, stejně jako mnoho webových služeb. Hesla root umožňují uživatelům provádět v databázi jakoukoli funkci nejvyšší úrovně.
Při nastavování MySQL se doporučuje nastavit heslo root pro vaši databázi z důvodu zabezpečení. To však neznamená, že nemůžete používat MySQL bez hesla root. Je na vás, abyste si promysleli daný úkol a rozhodli se, zda nastavit heslo uživatele root nebo ne.
Resetování hesla root MySQL
Uživatelé MySQL se ptají spousty otázek „Jak resetovat heslo root MySQL“. Pokud jste si nastavili heslo uživatele root, ale bohužel jste o něm ztratili přehled, pak vás tento tutoriál s článkem provede procesem resetování hesla uživatele root v systému Linux i Windows.
Předpoklady
- Stávající databáze MySQL
- Administrátorská práva na PC hostujícím databázi MySQL
- Přístup k serveru Windows nebo Linux se systémem MySQL
- Rozhraní příkazového řádku nebo terminálový přístup
- Textový editor. (Nemějte obavy, protože uživatelé Windows mají ve výchozím nastavení na svých počítačích nainstalovaný Poznámkový blok, zatímco uživatelé Linuxu mají předinstalovaný vim.
Jakmile budete mít všechny zmíněné předpoklady, pojďme dál a naučíme se, jak resetovat nebo změnit kořenové heslo MySQL.
Tento proces provedeme na dvou frontách:
- Jak resetovat kořenové heslo MySQL v systému Linux
- Jak resetovat kořenové heslo MySQL ve Windows
1. Jak resetovat kořenové heslo MySQL v Linuxu
Krok 1:Přihlaste se do MySQL
Při spouštění operačního systému Linux je nezbytné přihlásit se ke stejnému uživateli, který obvykle používá MySQL. To je zásadní, abyste se vyhnuli chybám, jako je vytváření souborů vlastněných uživatelem root, které by mohly poškodit váš systém. Po spuštění serveru MySQL se však můžete také přihlásit jako uživatel root. Chcete-li to provést, ujistěte se, že spouštíte MySQL pomocí níže uvedené syntaxe.
user=fosslinux
Krok 2:Nalezení souboru .pid používaného službou MySQL
Dalším krokem je vyhledání souboru .pid. Ve většině systémů Linux jsou uloženy v tomto umístění:
/var/lib/mysql or /var/run/mysqld/ or /usr/local/mysql/data/.
Protože ne všechny systémy Linux jsou stejné, můžete vyzkoušet kteroukoli z výše uvedených cest a zjistit, zda můžete soubor najít. Chcete-li soubor rychle najít, můžete vyhledávání zúžit na soubory začínající mysqld (nebo název vašeho hostitele) a končící na .pid.
Poznámka: Hledání souboru zjednoduší proces; proto vám to doporučujeme vyzkoušet.
Jakmile soubor najdete, pokračujte dalším krokem
Krok 3:Ukončení procesu mysqld / .pid
Před resetováním nebo vytvořením nového hesla root musíme nejprve zastavit server MySQL. To lze provést otevřením terminálu a spuštěním příkazového řádku níže:
kill `cat /mysql-data-directory/host_name.pid`
Poznámka: Nahraďte mysql-data-directory/host_name.pid s názvem souboru, který jsme našli v kroku 2. Je také důležité zadat celou cestu k souboru, abyste se vyhnuli chybám.
Další tip: Vždy se ujistěte, že používáte klávesu zpětného zaškrtnutí namísto klávesy s jednoduchými uvozovkami. Klávesa zpětného zaškrtnutí se na většině počítačů nachází nad klávesou Tab a před jednou číselnou klávesou.
Krok 4:Vytvoření nového souboru s hesly uživatele root
Nyní je čas otevřít váš oblíbený textový editor. V našem případě použijeme textový editor Vim. Otevřete terminál pomocí zkratky CTRL + ALT + T a poté spusťte příkaz níže:
sudo vim mysql-init
Poznámka:Pokud se po spuštění výše uvedeného příkazu zobrazí chyba, spusťte tento příkaz a pokračujte v dalších procesech:
sudo apt install vim
Nyní přidejte do souboru řádek níže:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
Poznámka: Při ručním psaní výše uvedeného řádku do terminálu nezapomeňte zahrnout všechny středníky a jednoduché uvozovky. Také nahraďte „NewPassword “ s novým heslem, které chcete použít. Nakonec se ujistěte, že používáte silné a bezpečné heslo, nebo si zde přečtěte, jak vygenerovat silné náhodné heslo v Linuxu.
Výše uvedený příkaz bude fungovat pouze na hostitelském počítači, který používáte při spuštění příkazu. Pokud se však plánujete připojit k jinému systému, doporučuje se nahradit localhost příslušným nebo spíše vhodným názvem hostitele, aby příkaz fungoval. Pokud tak neučiníte, dojde k chybám.
Po přidání nového souboru do textového editoru jej uložte do:
home/mysql-init.
Krok 5:Restartování serveru MySQL a použití nově vytvořeného hesla
Je čas použít změny, které jsme provedli v našem nově vytvořeném hesle. Nejprve restartujeme server MySQL provedením příkazu níže v terminálu:
mysqld --init-file=/home/mysql-init &
Tento příkaz spustí MySQL a použije heslo k textovému souboru, které jsme vytvořili v předchozím kroku. V závislosti na metodě, kterou používáte ke spuštění serveru, budete možná muset před příkaz init přidat další možnosti, jako je –defaults-file.
Po použití nově vytvořeného hesla a restartování serveru MySQL je čas na vyčištění. Uděláme to tak, že se přihlásíme k vašemu serveru MySQL jako uživatel root a ověříme, že námi vytvořené heslo skutečně funguje. Jakmile potvrdíte, že soubor funguje dobře, pokračujte a odstraňte soubor, který jsme vytvořili v kroku 4 výše.
2. Jak resetovat kořenové heslo MySQL ve Windows
Pokud jste uživatelem Windows a rádi byste se naučili, jak resetovat kořenové heslo MySQL ve Windows, přečtěte si tento článek až do konce.
Krok 1:Zastavení serveru MySQL.
Před zastavením serveru MySQL se musíte ujistit, že jste přihlášeni jako správce.
- Stisknutím kláves Win + R v systému Windows otevřete dialogové okno Spustit typu:
services.msc
- Poté klikněte na OK.
- Projděte seznamem služeb dolů a vyhledejte službu MySQL. Klikněte na něj pravým tlačítkem a poté vyberte možnost Zastavit, jak je znázorněno na obrázku níže:
Krok 2:Otevřete svůj oblíbený textový editor
Pro ilustraci použijeme výchozí textový editor Poznámkový blok. Pokud však máte jiný textový editor, nezlobte se, protože procesy jsou podobné.
- Nyní klikněte na nabídku Start a vyhledejte Poznámkový blok. Kliknutím na něj spustíte.
Případně použijte tuto cestu k nalezení Poznámkového bloku:menu>Příslušenství Windows>Poznámkový blok.
Krok 3:Vytvoření nového textového souboru hesla pomocí příkazu password
Zkopírujte a vložte níže uvedenou syntaxi do textového editoru, abyste předešli chybám při ručním psaní:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
Stejně jako v případě Linuxu zajistěte zachování středníku a jednoduchých uvozovek a nahrazení Nového hesla frázi s novým heslem, které hodláte použít ve svém MySQL.
Klikněte na možnost Soubor a poté na Uložit jako pro uložení hesla textového souboru do kořenového adresáře vašeho pevného disku. Uložte soubor jako mysql-init.txt.
V důsledku toho může příkaz localhost provádět změny hesla pouze ve vašem systému. Pokud tedy máte v úmyslu změnit heslo na jiném systému, např. přes síť, nahraďte localhost odpovídajícím názvem hostitele pro jiný systém.
Krok 4:Spusťte CMD (příkazový řádek)
- Klikněte na klávesnici na klávesy Ctrl + Shift + Esc
- Vyberte nabídku soubor a poté Spustit novou úlohu
- Zadejte cmd.exe a zaškrtněte políčko Spustit jako správce
- Kliknutím na tlačítko OK spustíte příkazový řádek s oprávněními správce.
Krok 5:Restartování serveru MySQL a použití nového konfiguračního souboru
- Pomocí příkazového řádku přejděte do adresáře MySQL:
cd C:\Program Files\MySQL\MySQL Server 8.0\bin
- Poté zadejte následující příkaz:
mysqld --init-file=C:\\mysql-init.txt
Poznámka: Měli byste vzít v úvahu, že před mysql-init jsou dvě zpětná lomítka výzva. Kromě toho, pokud jste použili jiný název, než který jsme použili pro ilustraci v kroku 2 výše, měli byste toto jméno použít hned za dvěma zpětnými lomítky bez mezer.
Po dokončení se nyní můžete přihlásit do MySQL jako uživatel root pomocí nově vytvořeného hesla.
Ujistěte se, že jste dvakrát zkontrolovali, zda nové heslo funguje bezchybně. Po potvrzení pokračujte a odstraňte soubor mysql-init.txt, který jsme uložili v našem adresáři C:\.
Obecné pokyny pro resetování hesla root MySQL
Předchozí části poskytly podrobné pokyny k resetování kořenových hesel MySQL pro Linux a Windows. Alternativně, při použití jakékoli platformy, můžete k resetování hesla použít klienta MySQL. Je však důležité poznamenat, že tato metoda je méně bezpečná ve srovnání s předchozími metodami.
Chcete-li použít klienta MySQL, postupujte podle kroků zvýrazněných níže:
1. Prvním krokem je zastavení serveru MySQL. Po zastavení jej restartujte pomocí níže uvedené možnosti:
--skip-grant-tables
Tato možnost umožní komukoli připojit se bez hesla, ale bude mít všechna oprávnění a zakáže výpisy ze správy účtu, jako je ALTER USER a NASTAVIT HESLO.
Tato možnost je považována za nezabezpečenou, protože pokud server začíná s –skip-grant-tables možnost přeskočit síť je povoleno zakázáním vzdálených připojení.
2. Nyní se připojte k serveru MySQL spuštěním příkazu níže:
mysql
Poznámka: při restartování serveru MySQL pomocí klienta MySQL není vyžadováno žádné heslo, protože server se spustil pomocí –skip-grant-tables .
3. Nyní v klientovi MySQL spusťte níže uvedený příkaz a sdělte serveru, aby znovu načetl tabulky grantů. To umožní, aby výpisy ze správy účtu, které byly dříve zastaveny, znovu fungovaly:
mysql> FLUSH PRIVILEGES;
Po spuštění příkazu spusťte příkaz ALTER USER pro změnu hesla. Nahraďte MyNewPass , s novým heslem, které hodláte použít.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Poznámka: Chcete-li změnit heslo uživatele root pro jiný systém, nezapomeňte změnit místního hostitele pomocí názvu hostitele systému.
Nyní se můžete připojit k serveru MySQL jako uživatel root pomocí hesla, které jsme vytvořili. Poté zastavte a restartujte server normálně bez –skip-grant-tables možnosti a bez povolení proměnné skip-networking.
To je vše, co jste úspěšně resetovali kořenové heslo MySQL.
Závěr
Pokud jste dříve přiřadili heslo root k MySQL, ale zapomněli jste ho, můžete ho resetovat přiřazením nového hesla k MySQL, jak je uvedeno v tomto článku.
Poznámka: MySQL pro připojení nevyžaduje heslo uživatele root. Nevýhodou nepřiřazení hesla root k vašemu MySQL je však to, že je nezabezpečená a můžete ztratit své cennosti. Pokud jste tedy ke svému MySQL nikdy nenastavili heslo root, důrazně doporučujeme, abyste si jej vytvořili podle výše uvedených kroků a zabezpečili svá data a informace.