mysqld_safe: command not found Hatası, root parola sıfırlama

Eğer

mysqld_safe
komutunu çalıştırmaya çalıştığınızda şu mesajı alıyorsanız;

mysqld_safe: command not found

ve sisteminizi systemd (systemctl) ile yönetiyorsanız aşağıdaki adımları uygulayarak mysql e erişim sağlayabilir ve root kullanıcısına ait parolayı sıfırlayabilirsiniz.


1 - MySQL'i durdurun ve uygun MYSQLD_OPTS ile yeniden başlatın

sudo service mysqld stop;
sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables --skip-networking";
sudo service mysqld start;

2 - MySQL başladıktan sonra, root olarak şifresiz giriş yapın

mysql -u root;

3 - MySQL içinde şu komutları çalıştırın; [password] kısmını istediğiniz şifre ile değiştirin

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '[password]';
FLUSH PRIVILEGES;
exit;

İlk FLUSH PRIVILEGES; komutu, MySQL'i --skip-grant-tables ile başlattığınızda gereklidir. Ancak, FLUSH PRIVILEGES; komutunun çalıştırılmasında herhangi bir risk veya tehlike yoktur.

4 - MYSQLD_OPTS ayarlarını geri alın ve MySQL'i yeniden başlatın

sudo service mysqld stop;
sudo systemctl unset-environment MYSQLD_OPTS;
sudo service mysqld start;

 

Bütün adımları tamamladıktan sonra, yeni şifrenizi kullanarak root olarak MySQL'e giriş yapabilirsiniz.

mysql -u root -p