AvaHost VPS Üzerinde MySQL “Server Quit Without Updating PID File” Hatasını Düzeltme

MySQL hatası The server quit without updating PID file, MySQL sunucusunun başlatılamadığını ve işlem kimliği (PID) dosyasını güncelleyemediğini gösterir, bu da veritabanı işlemlerini kesintiye uğratır. Bu sorun, MySQL’e bağımlı Redmine, WordPress veya ticaret platformları gibi uygulamaları çalıştıran VPS kullanıcılarını etkileyebilir. AvaHost’un yüksek performanslı NVMe SSD’leri ve cPanel araçlarını kullanarak, bu kılavuz bu hatanın nedenlerini araştırmakta ve Ubuntu veya CentOS tabanlı AvaHost VPS‘nizde MySQL işlevselliğini geri yüklemek için net, uygulanabilir çözümler sunmaktadır.

Hatanın Nedenleri

  1. Yetersiz Disk Alanı
    Sunucunuzda disk alanı kalmadıysa, MySQL gerekli günlükleri ve PID dosyalarını yazamadığı için başlatılamayabilir.
  2. Yanlış Dosya ve Dizin İzinleri
    MySQL, yapılandırma ve veri dizinleri için belirli sahiplik ve izinlere ihtiyaç duyar. Eğer bunlar yanlışsa, MySQL PID dosyasını oluşturamaz veya güncelleyemez.
  3. Bozuk MySQL Veri Dosyaları
    MySQL veri dosyalarındaki bozulmalar, sunucunun başlatılmasını engelleyebilir. Bu genellikle yanlış kapatmalar veya dosya sistemi sorunları nedeniyle olur.
  4. MySQL Yapılandırma Hataları
    my.cnf (MySQL’in yapılandırma dosyası) içindeki hatalar, MySQL’in başlatılmasını engelleyebilir. Günlükler, veri dizinleri veya soket dosyaları için yanlış yollar yaygın nedenlerdir.
  5. Mevcut MySQL Süreç Çatışmaları
    Eğer eski bir MySQL süreci çalışıyorsa veya önceki bir örnek düzgün kapatılmadıysa, yeni bir örneğin başlatılmasını engelleyebilir.
  6. SELinux veya AppArmor Kısıtlamaları
    SELinux veya AppArmor tarafından uygulanan güvenlik politikaları, MySQL’in PID dosyasını yazmasını veya gerekli dizinlere erişmesini engelleyebilir.

Hatanın Nasıl Düzeltileceği

1. Mevcut Disk Alanını Kontrol Edin

Diskin dolu olup olmadığını kontrol etmek için aşağıdaki komutu çalıştırın:

df -h

Disk doluysa, gereksiz dosyaları silerek veya disk boyutunu artırarak alan açın.

2. MySQL Hizmet Günlüklerini Doğrulayın

Kök nedenleri belirlemek için MySQL’in hata günlüklerini inceleyin:

tail -f /var/log/mysql/error.log

Ya da bazı dağıtımlar için:

tail -f /var/log/mysqld.log

3. Dosya ve Dizin İzinlerini Kontrol Edin

MySQL’in doğru sahiplik ve izinlere sahip olduğundan emin olun:

sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod -R 755 /var/lib/mysql

Ayrıca, /var/run/mysqld/ dizininin var olduğunu doğrulayın:

sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld

4. MySQL Veri Dosyalarını Onarın

Bozulma şüpheniz varsa, aşağıdaki komutu çalıştırmayı deneyin:

sudo mysqlcheck --all-databases

Ya da MySQL’i kurtarma modunda yeniden başlatmayı deneyin:

sudo mysqld_safe --skip-grant-tables --skip-networking &

5. MySQL Yapılandırma Dosyasını Doğrulayın (my.cnf)

Yanlış yapılandırmaları kontrol edin:

cat /etc/mysql/my.cnf

Yanlış yapılandırılmış yollar veya çelişen ayarlar arayın. Gerekirse, varsayılan bir yapılandırmayı geri yükleyin.

6. Eski MySQL Süreçlerini Sonlandırın

Eğer eski bir MySQL süreci çalışıyorsa, onu sonlandırın:

sudo pkill -9 mysqld

Sonra, MySQL’i yeniden başlatmayı deneyin:

sudo systemctl start mysql

7. SELinux/AppArmor’ı Devre Dışı Bırakın (Gerekirse)

SELinux’u geçici olarak devre dışı bırakın:

sudo setenforce 0

AppArmor için, MySQL profilini boşaltmayı deneyin:

sudo aa-complain /etc/apparmor.d/usr.sbin.mysqld

8. MySQL’i Yeniden Yükleyin (Son Çare Olarak)

Eğer her şey başarısız olursa, MySQL’i yeniden yükleyin:

sudo apt remove --purge mysql-server
sudo apt install mysql-server

Yeniden yüklemeden önce verilerinizi yedeklediğinizden emin olun.

Sonuç

MySQL’deki “Server quit without updating PID file” hatası, izin sorunları, bozuk veri dosyaları, yapılandırma hataları veya disk alanı yetersizlikleri gibi çeşitli sorunlardan kaynaklanabilir. Her potansiyel nedeni sistematik olarak gidererek ve ilgili düzeltmeleri uygulayarak, MySQL işlevselliğini geri yükleyebilir ve bu sorunun gelecekteki tekrarlarını önleyebilirsiniz. Düzenli bakım, doğru kapatmalar ve izleme, gelecekte benzer sorunların önlenmesine yardımcı olabilir.