MySQL root şifresini unutursanız, sunucunuza SSH ile bağlanabiliyor olduğunuz sürece, fazla uğraşmadan root şifresini sıfırlayabilirsiniz. Ancak burada şöyle bir problem mevcut ki bu yazıyı yazmamın sebebi de bu, MySQL versiyonuna göre yöntemler değişebiliyor. Birkaç kere ben de bunları karıştırdığım için, başkaları da aynı problemi yaşayabilir diye bu yazıyı yazmaya karar verdim.
Öncelikle MySQL versiyonunuzu bilmiyorsanız, alttaki komut ile MySQL versiyonunuzu öğrenebilirsiniz.
Kod:
$ mysql --version
MySQL 5.7 öncesinde çok basit şekilde, MySQL'i yeniden yapılandırarak root şifresini sıfırlayabilirsiniz. Veritabanıma bir şey olur mu diye merak ediyorsanız belirteyim, herhangi bir veri kaybetmiyorsunuz.
Kod:
$ sudo dpkg-reconfigure mysql-server
MySQL 5.7 ve sonrası için alttaki gibi bir yol izlemeniz gerekiyor. Alttaki komutlar size MySQL root şifresini resetlemeniz için yardımcı olacak.
Kod:
$ sudo service mysql stop
$ sudo mkdir -p /var/run/mysqld
$ sudo chown mysql:mysql /var/run/mysqld
$ sudo mysqld_safe --skip-grant-tables --skip-networking &
$ mysql -u root
Bu şekilde MySQL'in güvenli modunu kullanarak şifresiz olarak root erişimini sağlayacaksınız. Devamında alttaki komutlar ile yeni şifreyi oluşturabilirsiniz, yeni-sifre kısmını, kullanmak istediğiniz yeni root şifresi ile değiştirin.
Kod:
mysql> FLUSH PRIVILEGES;
mysql> UPDATE mysql.user SET authentication_string=PASSWORD('yeni-sifre') WHERE User='root';
mysql> FLUSH PRIVILEGES;
Üstteki yöntem, MySQL 5.7 öncesi için de uygulanabilir, ancak authentication_string kısmını Password olarak değiştirmeniz gerekli.
Kod:
mysql> UPDATE mysql.user SET Password=PASSWORD('yeni-sifre') WHEREUser='root';