MySQL veya MariaDB servisi durduğunda WordPress, e-ticaret ve tüm dinamik siteler veritabanına erişemez. Bu rehber servis, disk, izin, socket, my.cnf, InnoDB ve Aria hatalarını veri dosyalarını silmeden güvenli sırayla teşhis eder.
The “mysql” service appears to be down.
Failed to start MariaDB database server.
InnoDB: Unable to lock ./ibdata1 error: 11
Can't connect to local server through socket '/var/lib/mysql/mysql.sock'
Chkservd veya cPanel servis yöneticisi MariaDB’nin çalışmadığını ya da sağlık kontrolüne yanıt vermediğini algıladığında bu bildirimi üretir. Bazen servis gerçekten kapalıdır; bazen MariaDB çalıştığı hâlde socket, bağlantı veya izleme yöntemi nedeniyle kapalı görünür.
Servis başlangıç hatasının gerçek nedeni çoğunlukla systemctl çıktısındaki son satırda değil, MariaDB error log içindeki ilk kritik kayıttadır. Günlük başlangıcından itibaren okunmalı ve ilk hata bulunmalıdır.
Errcode 28, no space left on device veya temporary file oluşturulamaması disk alanı ya da inode tükenmesine işaret eder. Bu durumda MariaDB ayarı değiştirmek yerine dosya sistemindeki doluluk çözülmelidir.
InnoDB corruption, checksum mismatch veya page corruption mesajları veri bütünlüğü riski taşır. Sunucu yedeği alınmadan ibdata1, ib_logfile, redo log veya tablo dosyaları silinmemelidir.
MySQL socket hatası her zaman veritabanının kapalı olduğu anlamına gelmez. İstemcinin beklediği socket yolu ile MariaDB’nin oluşturduğu yol farklı olabilir veya eski PID/socket dosyası kalmış olabilir.
Bu sayfadaki teşhis komutları veri dosyalarını değiştirmez. InnoDB force recovery, tablo onarımı ve veri dosyası taşıma işlemleri yalnızca güncel yedek ve kurtarma planıyla uygulanmalıdır.
E-postada, tarayıcıda veya SSH günlüğünde gördüğünüz ifadeyi aratın. Her kartta anlam, muhtemel neden ve güvenli ilk işlem bulunur.
Anlamı: cPanel sağlık kontrolü MySQL/MariaDB servisini çalışır durumda doğrulayamamıştır.
Muhtemel neden: Servis kapalı, yanıt vermiyor, socket farklı, disk dolu veya chkservd bağlantısı başarısız.
Anlamı: Systemd başlangıç işlemi başarıyla tamamlanmamıştır.
Muhtemel neden: my.cnf hatası, izin, port çakışması, disk, InnoDB/Aria kurtarma veya bozuk paket.
Anlamı: cPanel restart betiği servisi ayağa kaldıramamıştır; 2 kök neden değildir.
Muhtemel neden: Asıl hata servis başlangıç günlüğünde bulunur.
Anlamı: InnoDB sistem tablo alanı başka bir süreç tarafından kilitli görünmektedir.
Muhtemel neden: İkinci mariadbd süreci, yarım kalan başlangıç veya eski süreç.
Anlamı: InnoDB veri sayfasında bütünlük bozulması algılanmıştır.
Muhtemel neden: Disk sorunu, ani güç kesintisi, donanım/RAM hatası veya bozuk veri sayfası.
Anlamı: İstemci beklenen Unix socket dosyasına bağlanamamıştır.
Muhtemel neden: Servis kapalı, socket yolu farklı, socket oluşmamış veya izin sorunu.
Anlamı: MariaDB geçici veya kalıcı dosya yazamamıştır.
Muhtemel neden: Disk alanı ya da inode yüzde 100, /tmp dolu veya kota sınırı.
Anlamı: MariaDB veri dizinindeki dosyaya erişememektedir.
Muhtemel neden: Yanlış mysql:mysql sahipliği, SELinux context, izin veya taşıma sonrası bozulma.
Anlamı: MariaDB sürümünün tanımadığı bir yapılandırma parametresi vardır.
Muhtemel neden: Sürüm yükseltmesi, yanlış sözdizimi veya eski MySQL parametresi.
Anlamı: MariaDB’nin dinlemek istediği port başka süreç tarafından kullanılıyor.
Muhtemel neden: İkinci MySQL örneği, Docker/proxy veya yanlış servis.
Anlamı: Aria depolama motoru loglarını açamıyor veya kurtaramıyor.
Muhtemel neden: Ani kapanma, izin, disk doluluğu veya bozuk Aria logları.
Anlamı: Veritabanı süreci çalışırken chkservd kontrolü bağlantı kuramıyor olabilir.
Muhtemel neden: Socket yolu, şifre/health check, MySQL Governor veya ağır yük nedeniyle zaman aşımı.
Bu ifadeyle eşleşen kayıt bulunamadı.
Komutlar root erişimi içindir. Önce yalnızca durum ve log toplayın; nedeni görmeden kalıcı ayar değiştirmeyin.
systemctl status mariadb -l --no-pager
/usr/local/cpanel/scripts/restartsrv_mysql --status
MariaDB ve cPanel servis kontrolünün gördüğü durumu birlikte gösterir.
journalctl -u mariadb -n 200 --no-pager
Başlangıç ve kapanış sırasında systemd’ye aktarılan hataları listeler.
ls -lah /var/lib/mysql/*.err 2>/dev/null
tail -n 200 /var/lib/mysql/*.err 2>/dev/null
InnoDB, Aria, izin ve yapılandırma hatalarının ana kaynağıdır.
my_print_defaults mysqld
mysqld --verbose --help 2>/dev/null | head -n 30
Yüklenen my.cnf seçeneklerini ve binary bilgisini gösterir.
df -hT
df -ih
du -sh /var/lib/mysql /tmp 2>/dev/null
Errcode 28, temp file ve yazma sorunlarının dosya sistemi tarafını doğrular.
ss -lntp | grep ':3306'
ss -lxnp | grep -E 'mysql|maria'
find /run /var/lib/mysql -maxdepth 2 -type s -name '*mysql*.sock' -ls 2>/dev/null
MariaDB’nin port veya Unix socket üzerinden dinleyip dinlemediğini gösterir.
ps auxf | grep -E '[m]ariadbd|[m]ysqld'
mysqladmin ping 2>&1
mysqladmin processlist 2>&1 | head -n 80
Çift süreç, servis yanıtı ve takılı sorguları kontrol eder.
journalctl -k --since '2 hours ago' | grep -Ei 'oom|killed process|I/O error|ext4|xfs|nvme|sda'
MariaDB’nin OOM veya disk I/O hatası nedeniyle kapanıp kapanmadığını ayırır.
Müdahale sırası servis durumunu doğrulama, ilk kritik logu bulma, dosya sistemi ve yapılandırmayı ayırma, güvenli restart ve veri bütünlüğü kontrolüdür.
Status, journal ve error log çıktısını alın. Sık restart, ilk hata satırını log rotasyonu içinde kaybettirebilir.
systemctl status mariadb -l --no-pager
journalctl -u mariadb -n 200 --no-pager
tail -n 200 /var/lib/mysql/*.errDisk veya inode doluysa önce güvenli alan açın. /var/lib/mysql sahipliği ve SELinux context değişmişse nedenini belirleyin.
df -hT
df -ih
namei -l /var/lib/mysqlUnknown variable veya syntax hatası varsa dosyayı yedekleyip yalnız sorunlu parametreyi düzeltin. Tüm yapılandırmayı sıfırlamak performans ayarlarını kaybettirebilir.
cp -av /etc/my.cnf /root/my.cnf.yedek-$(date +%F-%H%M)
my_print_defaults mysqld3306’yı hangi PID’in kullandığını ve aktif mariadbd sayısını doğrulayın. Çalışan üretim sürecini rastgele kill etmeyin.
ss -lntp | grep ':3306'
ps auxf | grep -E '[m]ariadbd|[m]ysqld'Kök neden giderildikten sonra cPanel servis betiğini kullanın ve hemen ardından yeni error log satırlarını inceleyin.
/usr/local/cpanel/scripts/restartsrv_mysql
sleep 5
systemctl status mariadb -l --no-pagermysqladmin ping, basit SQL sorgusu, kritik siteler ve yeni hata kayıtları kontrol edilmeden işlem tamam sayılmaz.
mysqladmin ping
mysql -NBe 'SELECT VERSION(), NOW();'
tail -n 80 /var/lib/mysql/*.errVeritabanı dosyalarını silmek yerine dolu mount noktasını bulun. Log, yedek, /tmp ve binary log kullanımı ayrı ayrı incelenmelidir.
df -hT
df -ih
du -xhd1 /var 2>/dev/null | sort -h | tail -n 20Çoğunlukla başka mariadbd süreci hâlâ çalışıyordur. PID’i ve process tree’yi doğrulamadan ibdata1 veya pid dosyasını silmeyin.
ps auxf | grep -E '[m]ariadbd|[m]ysqld'
lsof /var/lib/mysql/ibdata1 2>/dev/nullÖnce fiziksel veya snapshot yedeği alın. innodb_force_recovery yalnız veri dışa aktarmak için geçici kurtarma aracıdır; normal üretim modu değildir.
grep -Ei 'corrupt|checksum|page.*error|crash' /var/lib/mysql/*.err | tail -n 100TCP bağlantısı çalışırken istemci yanlış socket yoluna bakıyor olabilir. my.cnf içindeki socket seçenekleri client ve server bölümlerinde eşleşmelidir.
my_print_defaults client mysql mysqld | grep -i socket
ss -lxnp | grep -E 'mysql|maria'Chkservd zaman aşımı yoğunluk nedeniyle oluşabilir. Processlist, slow query log, disk latency ve MySQL Governor birlikte incelenir.
mysqladmin processlist
mysqladmin status
iostat -xz 1 5cPanel’in MySQL/MariaDB sağlık kontrolünden geçemediğini bildirir. Servis gerçekten kapalı olabilir veya socket, yük ve izleme yöntemi nedeniyle kapalı görünebilir.
Önce journalctl -u mariadb ve /var/lib/mysql altındaki .err dosyası incelenir. İlk kritik ERROR satırı genellikle kök nedeni gösterir.
Hayır. ibdata1 InnoDB sistem tablo alanıdır ve silinmesi ciddi veri kaybına yol açabilir. Yalnız uzman kurtarma planı ve yedekle işlem yapılmalıdır.
Çoğunlukla disk alanı veya inode kalmadığını gösterir. df -h ve df -i ile ilgili mount noktası kontrol edilmelidir.
Önce servis çalışıyor mu, gerçek socket nerede ve istemcinin beklediği yol ne kontrol edilir. Client ve server socket ayarları eşleştirilir.
cPanel sunucuda /usr/local/cpanel/scripts/restartsrv_mysql komutu tercih edilir. Restart öncesi log alınmalı ve sonrasında error log tekrar kontrol edilmelidir.
Hayır. Veri dışa aktarmak için geçici kurtarma modudur. Yazma işlemleri ve normal üretim için kalıcı çözüm değildir.
Chkservd socket veya kimlik doğrulama üzerinden yanıt alamıyor, servis ağır yük altında zaman aşımına uğruyor ya da MySQL Governor gibi bir katman kontrolü etkiliyor olabilir.
cPanel, WHM, CloudLinux, LiteSpeed, MariaDB, Exim ve güvenlik katmanlarını birlikte analiz ederek yalnızca servisi kaldırmak yerine arızanın temel nedenini gideriyoruz.