Ik heb een oplossing!
Bij het resetten van het root-wachtwoord bij stap 2), verander dan ook de auth-plug-in in 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;
Hierdoor kon ik succesvol inloggen!
Volledige code-oplossing
1. voer bash-commando's uit
1. voer eerst deze bash-commando's uit
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. voer vervolgens mysql-opdrachten uit => kopieer en plak dit om handmatig te cli
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. voer meer bash-commando's uit
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. Socketprobleem (van uw opmerkingen)
Wanneer je een stopcontact . ziet fout, een community kwam met 2 mogelijke oplossingen:
sudo mkdir -p /var/run/mysqld; sudo chown mysql /var/run/mysqld
sudo mysqld_safe --skip-grant-tables &
(met dank aan @Cerin)
Of
mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld
(met dank aan @Peter Dvukhrechensky)
Blinde paden en mogelijke randfouten
Gebruik 127.0.0.1 in plaats van localhost
mysql -uroot # "-hlocalhost" is default
Kan leiden tot "ontbrekend bestand" of slt-fout.
mysql -uroot -h127.0.0.1
Werkt beter.
Sla het socketprobleem over
Ik heb veel manieren gevonden om mysqld.sock
te maken bestand, toegangsrechten wijzigen of symbolisch koppelen. Het was tenslotte niet het probleem.
Sla de my.cnf
over bestand
Het probleem was er ook niet. Als je het niet zeker weet, kan dit je helpen .