Bir çözüm buldum!
2. adımda kök parolasını sıfırlarken, kimlik doğrulama eklentisini şu şekilde değiştirin 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;
Bu, başarıyla giriş yapmama izin verdi!
Tam kod çözümü
1. bash komutlarını çalıştırın
1. önce bu bash komutlarını çalıştırın
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. sonra mysql komutlarını çalıştırın => kopyalayın bunu cli'ye elle yapıştırı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. daha fazla bash komutu çalıştırın
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. Soket sorunu (yorumlarınızdan)
Bir soket hatası gördüğünüzde , bir topluluk 2 olası çözümle geldi:
sudo mkdir -p /var/run/mysqld; sudo chown mysql /var/run/mysqld
sudo mysqld_safe --skip-grant-tables &
(@Cerin'e teşekkürler)
Veya
mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld
(@Peter Dvukhrechensky'ye teşekkürler)
Kör yollar ve olası kenar hataları
Localhost yerine 127.0.0.1 kullanın
mysql -uroot # "-hlocalhost" is default
"Eksik dosya" ya da slt hatasına yol açabilir.
mysql -uroot -h127.0.0.1
Daha iyi çalışıyor.
Soket sorununu atla
mysqld.sock
Dosya oluşturmanın , erişim haklarını değiştirmenin veya sembolik bağlantı kurmanın birçok yolunu buldum . Sonuçta mesele bu değildi.
my.cnf
Dosyayı atla
Sorun da orada değildi. Emin değilseniz bu size yardımcı olabilir .