Linux Sistemleri Networking ve İnternet

MySQL root şifresi sorunu

Ubuntu Server root şifresi sorunu çözümü için harcadığım fazlaca zamandan sonra çok nadir yaşanabilecek bu sorun hakkında hem kendime not düşmek hem de herkese yardımcı olabilmek adına bir çözüm paylaşacağım. Çünkü bu konuda bulacağımız yalancı bir kaynak veritabanımızda veri kaybına sebep olabilecek durumdadır.

/etc/mysql/my.cnf dosyasını sistem root hesabıyla açarak pid-file = /var/run/mysqld/mysqld.pid yerini kontrol ediyoruz.

Bu pid dosyası çalıştığı process numarasını tutmaktadır. Çalışır haldeki mysql servisini process numarası veya pid dosyasının adını okutarak öldürüyoruz. Servisi düzgün kapatırsak “/var/run/mysqld/” klasörünü boş görürüz.

kill `cat /var/run/mysqld/mysqld.pid'

veya içinde yazan process numarasıyla

kill 78100

Sonrasında;  “sudo /etc/init.d/mysql status” komutu göndererek “mysql stopped” cevabını aldığımızdan emin olmakta fayda var. Çünkü bazı durumlarda burda hata oluşabilmekte ve sunucuyu yeniden başlatınca düzeltilebilmektedir.

Yazma yetkimiz olan bir alanda text dosyası oluşturuyoruz. örneğin "/home/administrator/mysql-init"

Bu text dosyası şu komutları içermelidir;
UPDATE mysql.user SET Password=PASSWORD('YeniŞifre') WHERE User='root'; FLUSH PRIVILEGES;

Hala sunucu durdurulmuş durumdayken komut satırına şu komutu vererek oluşturduğumuz dosyayı siliyoruz. 
mysqld_safe --init-file=/home/Administrator/mysql-init &

Ve tabiki mysql servisini başlatmayı unutmayalım. Tabi birde başlatıldığını kontrol edersek iyi olur. Sunucu yeniden başlatmak gerekmez.

sudo /etc/init.d/mysql start
sudo /etc/init.d/mysql status