Pokud právě spustíte příkaz mysql pod uživatelem root, bude vám udělen přístup bez požadavku na heslo, protože autentizace soketu je povolena pro [email protected]
Tato příručka je zavádějící.
Jediný způsob, jak nastavit heslo, je přepnout na nativní ověřování jako:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';
Ve svém šíleném výzkumu řešení jsem se podíval na /var/log/mysqld.log
a našel tento řádek:
[Poznámka] Vygeneruje se dočasné heslo pro [email protected]:abc123
Vypadá to, že mysql 5.7+ vygeneruje v instalaci náhodné heslo a zobrazí výzvu v tomto souboru.
Pro resetování hesla použijte níže uvedené kroky:
$ sudo systemctl start mysqld
Resetujte kořenové heslo serveru MySQL.
$sudo grep 'temporary password' /var/log/mysqld.log
Výstup něco jako:
10.744785Z 1 [Note] A temporary password is generated for [email protected]: o!5y,oJGALQa
Při resetování mysql_secure_installation použijte výše uvedené heslo proces.
$ sudo mysql_secure_installation
Securing the MySQL server deployment.
Enter password for user root:
Úspěšně jste resetovali heslo root serveru MySQL. Pomocí níže uvedeného příkazu zkontrolujte, zda se server MySQL připojuje nebo nepřipojuje.
$ mysql -u root -p
Viz můj článek:Instalace nejnovější MySQL 5.7 na RHEL/Centos 7