Jeg har en løsning!
Når du nulstiller root-adgangskoden i trin 2), skal du også ændre auth-pluginnet til 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;
Dette gjorde det muligt for mig at logge ind!
Fuld kodeløsning
1. køre bash-kommandoer
1. Kør først disse bash-kommandoer
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. kør derefter mysql-kommandoer => kopier indsæt dette til cli manuelt
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. køre flere bash-kommandoer
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. Socket problem (fra dine kommentarer)
Når du ser en socket fejl, kom et fællesskab med 2 mulige løsninger:
sudo mkdir -p /var/run/mysqld; sudo chown mysql /var/run/mysqld
sudo mysqld_safe --skip-grant-tables &
(tak til @Cerin)
Eller
mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld
(tak til @Peter Dvukhrechensky)
Blinde stier og mulige kantfejl
Brug 127.0.0.1 i stedet for localhost
mysql -uroot # "-hlocalhost" is default
Kan føre til "manglende fil" eller slt-fejl.
mysql -uroot -h127.0.0.1
Virker bedre.
Spring socket-problemet over
Jeg har fundet mange måder at oprette mysqld.sock
på fil, ændre adgangsrettigheder eller symlink den. Det var trods alt ikke problemet.
Spring my.cnf
over fil
Problemet var der heller ikke. Hvis du ikke er sikker, dette kan måske hjælpe dig .