Mám řešení!
Při resetování hesla uživatele root v kroku 2) změňte také auth plugin na mysql_native_password
:
use mysql;
update user set authentication_string=PASSWORD("") where User='root';
update user set plugin="mysql_native_password" where User='root'; # THIS LINE
flush privileges;
quit;
To mi umožnilo úspěšně se přihlásit!
Řešení s úplným kódem
1. spustit příkazy bash
1. nejprve spusťte tyto bash příkazy
sudo /etc/init.d/mysql stop # stop mysql service
sudo mysqld_safe --skip-grant-tables & # start mysql without password
# enter -> go
mysql -uroot # connect to mysql
2. pak spusťte příkazy mysql => zkopírujte a vložte toto do cli ručně
use mysql; # use mysql table
update user set authentication_string=PASSWORD("") where User='root'; # update password to nothing
update user set plugin="mysql_native_password" where User='root'; # set password resolving to default mechanism for root user
flush privileges;
quit;
3. spustit více příkazů bash
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start # reset mysql
# try login to database, just press enter at password prompt because your password is now blank
mysql -u root -p
4. Problém se zásuvkou (z vašich komentářů)
Když uvidíte zásuvku Chyba, komunita přišla se 2 možnými řešeními:
sudo mkdir -p /var/run/mysqld; sudo chown mysql /var/run/mysqld
sudo mysqld_safe --skip-grant-tables &
(díky @Cerin)
Nebo
mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld
(díky @Peter Dvukhrechensky)
Slepé cesty a možné chyby hran
Namísto localhost použijte 127.0.0.1
mysql -uroot # "-hlocalhost" is default
Může vést k chybě „chybějící soubor“ nebo slt.
mysql -uroot -h127.0.0.1
Funguje lépe.
Přeskočte problém se soketem
Našel jsem mnoho způsobů, jak vytvořit mysqld.sock
soubor, změnit přístupová práva nebo jej symbolicky propojit. O to koneckonců nešlo.
Přeskočte my.cnf
soubor
Problém tam také nebyl. Pokud si nejste jisti, může vám pomoci toto .