Pro poskytnutí víceuživatelského přístupu k řadě databází byl vyvinut systém správy relačních databází, který běží na serveru a nazývá se MySQL. MySQL je vyvíjen pod GNU General Public License a jeho zdrojový kód je dostupný za definovaných podmínek. MySQL je oblíbenou volbou databáze pro použití ve webových aplikacích a funguje opravdu dobře s hostingovými účty cPanel pro ukládání dat jakýchkoli webových stránek. A předpokládejme, že pokud jste zapomněli heslo root MySQL a nemáte přístup ke službě MySQL, musíte resetovat heslo uživatele root MySQL pomocí následujících kroků, které jsou vysvětleny v tomto článku.
Pojďme se podívat na kroky k resetování kořenového hesla MYSQL pro server Plain, server cPanel a server Plesk.
Resetujte kořenové heslo MySQL pro obyčejný server
Kroky k resetování kořenového hesla MySQL pro prostý server na Centos 6 prostý.
Krok 1: [e-mail chráněný] [~]# /etc/init.d/mysqld stop Nebo [e-mail chráněn] [~]# zastavení služby mysqld
Krok 2: Spusťte server MySQL bez hesla:
[email protected] [~]# mysqld_safe –skip-grant-tables &
Krok 3: [e-mail chráněný] [~]# mysql
Poté můžete získat výzvu mysql a poté spustit následující příkaz.
Krok 4: mysql>použijte mysql;
Krok 5: mysql> AKTUALIZACE user SET password=PASSWORD(‘NEWPASSWORD’) WHERE User=’root’;
Krok 6: mysql> ukončit
Krok 7: [e-mail chráněný] [~]# zastávka /etc/init.d/mysqld
Krok 8: [e-mail chráněný] [~]# /etc/init.d/mysqld start
Nyní můžete přistupovat ke své službě mysql pomocí
Krok 9: [[e-mail chráněný] ~]# mysql -u root -p
Na Centos 7 jednoduché níže uvedené příkazy
Prostřednictvím SystemD je třeba použít následující příkaz
Krok 1: [e-mail chráněn] [~]# systemctl stop mysql
Krok 2: [email protected] [~]# systemctl set-environment MYSQLD_OPTS=”–skip-grant-tables”
Krok 3: [e-mail chráněný] [~]# systemctl start mysql
Krok 4: [e-mail chráněn] [~]# systemctl status mysql
Krok 5: [e-mail chráněný] [~]# kořen mysql -u
Krok 6: mysql> použijte mysql;
Krok 7: mysql> AKTUALIZOVAT NASTAVENÍ uživatele heslo=PASSWORD(‘NOVÉHESLO’) WHERE User=’root’;
Krok 8: mysql> FLUSH PRIVILEGES;
Krok 9: [e-mail chráněn] [~]# systemctl stop mysql
Krok 10: [e-mail chráněný] [~]# systemctl unset-environment MYSQLD_OPTS
Krok 11: [e-mail chráněný] [~]# systemctl start mysql
Nyní můžete přistupovat ke své službě mysql pomocí
Krok 12: [[e-mail chráněný] ~]# mysql -u root –p
Prostřednictvím SysVinit je třeba použít následující příkaz
- [e-mail chráněný] [~]# zastávka /etc/init.d/mysqld
- [email protected] [~]# mysqld_safe –skip-grant-tables &
- [e-mail chráněn] [~]# stav mysql systemctl
- [e-mail chráněn] [~]# kořenový adresář mysql -u
- mysql> použijte mysql;
- mysql> AKTUALIZOVAT NASTAVENÍ uživatele password=PASSWORD(‘NEWPASSWORD’) WHERE User=’root’;
- mysql> FLUSH PRIVILEGES;
- [e-mail chráněný] [~]# zastávka /etc/init.d/mysql
- [e-mail chráněný] [~]# /etc/init.d/mysql start
Nyní můžete přistupovat ke své službě mysql pomocí
[[e-mail chráněný] ~]# mysql -u root –p
Kroky pro server cPanel
Krok 1: Na všech běžících serverech cPanel/WHM kořenové přihlašovací údaje MySQL jsou uloženy lokálně v souboru. Tento soubor je přístupný pouze pro uživatele root.
Musíte se přihlásit do CLI serveru jako uživatel root a zobrazit přihlašovací údaje v /root/.my.cnf souboru
Příkaz-
[e-mail chráněn] [~]# kočka /root/.my.cnf
Výsledkem by měl být výsledek obsahující heslo MySQL , který bude vypadat podobně jako následující:
[e-mail chráněn] [~]# kočka /root/.my.cnf
[klient] heslo=“Heslo”
uživatel=root
Poznamenejte si aktuální heslo.
Krok 2: Heslo lze také obnovit Root MySQL Password z WHM
- Přihlaste se do WHM
- Přejděte na možnost Služby SQL
- Vyberte heslo kořenového adresáře MySQL
- Zadejte nové heslo a klikněte na tlačítko Změnit heslo.
- Tento proces změní kořenové heslo MySQL serveru.
Krok 3: Pokud oba výše uvedené kroky nefungují pro resetování hesla root, postupujte podle kroků pro resetování hesla pro Plain server.
Postup pro server Plesk
Na serveru Plesk je hlavním uživatelem admin.
Poznámka:Toto řešení se vztahuje na situaci, kdy bylo heslo uživatele ‘admin’@’localhost’ ručně změněno.
Nastavte heslo správce MySQL na stejné heslo, jaké je uvedeno v /etc/psa/.psa.shadow soubor.
Kroky:
Krok 1: Připojte se k serveru Plesk přes SSH.
Krok 2: Stáhněte si skript pro automatické obnovení správce MySQL:
# curl -LO https://plesk.zendesk.com/hc/article_attachments/360042955514/213364309-restore-admin-user.php.tar.gz
Krok 3: Rozbalte to:
# tar xf 213364309-restore-admin-user.php.tar.gz
Krok 4: Spusťte skript:
# plesk php 213364309-restore-admin-user.php
Krok 5: Zkuste znovu otevřít Plesk. Pokud automatické řešení nepomohlo, použijte ruční řešení.
Podívejme se na ruční řešení:
Krok 1: Připojte se k serveru Plesk přes SSH.
Krok 2: Pomocí níže uvedeného příkazu zkontrolujte, zda direktiva old-passwords existuje v konfiguračním souboru MySQL my.cnf (žádný výstup znamená, že neexistuje):
# grep -ir stará hesla /etc/my*
Pokud existuje, odstraňte jej pomocí textového editoru.
Krok 3: Získejte hashované heslo administrátora MySQL a zkopírujte ho do schránky:
Poznámka:Ujistěte se, že v souboru je zadáno pouze jedno heslo.
# grep AES /etc/psa/.psa.shadow
Zde je příklad hashovaného hesla:
$AES-128-CBC$ZmY/EEpy1+TwCNq5kalqSA==$Pd02kf4TTlpXdi/qyeo92w==
Krok 4: Upravte soubor my.cnf:
4.1. Otevřete soubor my.cnf v textovém editoru. V tomto příkladu používáme editor vi:
- V distribucích založených na CentOS/RHEL
# vi /etc/my.cnf
- V distribucích založených na Debianu/Ubuntu
# vi /etc/mysql/my.cnf
4.2. Přidejte řádek skip-grant-tables do sekce [mysqld]:
[mysqld]
skip-grant-tables <…>
4.3. Uložte změny a zavřete soubor.
Krok 5: Restartujte MySQL. Příkaz závisí na verzi MySQL a operačním systému:
# restart služby mariadb
# restart služby mysql
# restart služby mysqld
Krok 6: Připojte se k MySQL:
# plesk db
Krok 7: Přepněte na databázi mysql:
mysql> použijte mysql;
Krok 8: Najděte verzi MySQL:
mysql> SELECT VERSION();
Krok 9: Znovu načtěte mezipaměť tabulek ACL:
mysql> FLUSH PRIVILEGES;
Poznámka:Po provedení výše uvedeného příkazu neopouštějte aktuální relaci MySQL, protože tento příkaz načítá tabulky grantů zpět.
Krok 10: Obnovte uživatele MySQL admin:
- Pro MySQL 5.1 až 5.6 a MariaDB 5.5 až 10.4
1. Zrušte aktuálního administrátora :
mysql> DROP USER ‘admin’@’localhost’;
2. Vytvořte nového administrátora s hashheslem od kroku 3:
mysql> CREATE USER ‘admin’@’localhost’ IDENTIFIKOVANÉ PODLE ‘HASHED_PASSWORD_FROM_STEP_3’;
3. Udělte všechna oprávnění pro administrátora:
mysql> UDĚLEJTE VŠE NA *.* „admin“@'localhost“ S MOŽNOSTÍ UDĚLENÍ;
4. Ukončete MySQL:
mysql> ukončit
- Pro MySQL 5.7 až 8.0
1. Zrušte aktuálního administrátora uživatel:
mysql> DROP USER ‘admin’@’localhost’;
2. Vytvořte nového administrátora s hashovaným heslem od kroku 3:
mysql> VYTVOŘTE UŽIVATELE ‘admin’@’localhost’ IDENTIFIKOVANÉHO S ‘mysql_native_password’ PODLE ‘HASHED_PASSWORD_FROM_STEP_3’;
3. Udělte všechna oprávnění administrátorovi:
mysql> UDĚLEJTE VŠE NA *.* „admin“@'localhost“ S MOŽNOSTÍ UDĚLENÍ;
4. Ukončete MySQL:
mysql> ukončit
Krok 11: Odeberte skip-grant-tables řádek ze souboru my.cnf (krok 4).
Krok 12: Restartujte MySQL:
# restart služby mariadb
# restart služby mysql
# restart služby mysqld