MySQL Root Şifresi Sıfırlama

9 Eylül 2016

Son Güncellenme: 28 Mart 2019

MySQL root şifresini unutursanız, sunucunuza SSH ile bağlanabiliyor olduğunuz sürece, fazla uğraşmadan MySQL root şifresi sıfırlama işlemini gerçekleştirebilirsiniz. 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.

MySQL versiyonunuzu bilmiyorsanız, alttaki komut ile MySQL versiyonunuzu öğrenebilirsiniz.

$ mysql --version

Mysql 5.7 Öncesi

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.

$ sudo dpkg-reconfigure mysql-server

Mysql 5.7 ve Sonrası

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.

$ 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.

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.

mysql> UPDATE mysql.user SET Password=PASSWORD('yeni-sifre') WHERE User='root';

Sonuç olarak, bir daha MySQL'de root şifresini unutur ve sıfırlamanız gerekirse, bu yazı size ile MySQL root şifresi sıfırlama işlemini gerçekleştirebilirsiniz.