MySQL Root Şifresi Sıfırlama

MySQL Root Şifresi Sıfırlama

Son Güncelleme: 28 Mayıs 2020

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 şifre oluşturucu gibi bir aracın veya kendinizin belirleyeceği yeni şifreyi oluşturabilirsiniz, yeni-sifre kısmını, kullanmak istediğiniz yeni root şifresi ile değiştirin. Ancak, işler yine MySQL 8.0 ve sonrası için değişiyor. 

MySQL 8.0 Öncesi

Eğer MySQL versiyonunuz 8.0'dan küçükse alttaki komutlarla şifrenizi sıfırlayabilirsiniz.

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

MySQL 8.0 ve Sonrası

MySQL 8.0 ve sonrası için kullanmanız gereken komut biraz daha farklı. Alttaki gibi bunu da gerçekleyebilirsiniz.

mysql> FLUSH PRIVILEGES;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yeni-sifre';
mysql> FLUSH PRIVILEGES;

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.

Burak Özdemir

Burak Özdemir

Fethiye'de doğdum, Çanakkale Fen Lisesi ve İTÜ Bilgisayar Mühendisliği mezunuyum. Web geliştirme ile uğraşıyorum.