Linux sunucularıyla veritabanları yönettiğinizde, mysqld servisinin çeşitli nedenlerden dolayı beklenmedik bir şekilde durması hoş olmayan bir durumdur. Bu kılavuzda, MySQL'in herhangi bir nedenden dolayı durması durumunda nasıl otomatik olarak başlatılacağını, bir script ve crontab kullanarak öğreneceksiniz.
Bilinmeyen nedenlerden dolayı, mysqld daemon'u bazı saatlerde aniden durur ve otomatik olarak yeniden başlamaz. Sunucu logları bana çok yardımcı olmadığı için, mysqld servisinin çalışıp çalışmadığını kontrol etmek ve eğer aktif değilse, crontab kullanarak başlatmak için bir çözüm aradım.
Içerik
MySQL'i otomatik olarak nasıl başlatırsınız, eğer durursa? [Linux]
MariaDB ile MySQL sunucularında, mysqld servisi genellikle çeşitli nedenlerle durduğunda otomatik olarak yeniden başlamalıdır. Bu gerçekleşmezse, aşağıdaki script, mysqld daemon'unun düzenli olarak çalışıp çalışmadığını kontrol edecek ve durmuşsa MySQL'i otomatik olarak başlatmanıza yardımcı olacaktır.
Testim işletim sistemi üzerinde yapıldı Debian 12, MariaDB 10.11.4.
1. Konsolu açın ve durdurulması durumunda mysqld hizmetini başlatacak gelecekteki komut dosyası için dosyayı oluşturun.
Düzenleyiciyi kullanmayı tercih ediyorum "nano
".
sudo nano /usr/local/bin/autostart_mysql.sh
2. Yeni dosyada “autostart_mysql.sh
” aşağıdaki betiği kopyalayın:
#!/bin/bash
if systemctl is-active mysqld > /dev/null; then
echo "The mysqld service is running."
else
echo "The mysqld service is not running. Restarting..."
systemctl start mysqld
fi
3. Yeni dosyayı kaydedin “autostart_mysql.sh
“, ardından yürütme izinlerini ayarlayın.
chmod +x /usr/local/bin/autostart_mysql.sh
4. “ şuraya gidin:/usr/local/bin/
” ve komut dosyasını şu komutla test edin: “./autostart_mysql.sh
".
![MySQL'i otomatik olarak nasıl başlatırsınız, eğer durursa? [Linux]](https://stealthsettings.com/wp-content/uploads/2023/11/Autostart-mysql-service.webp)
Şu anda, başladığınız komut dosyası MySQL otomatik olarak yalnızca manuel olarak çalıştırıldığında çalışacaktır. Crontab'a eklendiğinde, tarafımızdan belirlenen zaman aralığında periyodik olarak çalışacaktır. Ben bu senaryoyu seçtim "autostart_mysql.sh
” her 3 dakikada bir çalıştırılacak.
Bir script'i crontab'a nasıl eklersiniz?
Crontab'a sizin tarafınızdan belirlenen bir zaman aralığında periyodik olarak çalıştırılacak bir komut dosyası eklemek için şu komutu çalıştırın: crontab -e
ardından komut satırını dosyanın sonuna ekleyin.
*/3 * * * * /usr/local/bin/autostart_mysql.sh
*/3
betiğin her 3 dakikada bir çalıştırılacağını belirtir.
Crontab'ı kaydedin ve düzenleyiciden çıkın.
Bu adımdan sonra servisi kontrol edin mysqld
3 dakikada bir yapılacak olup, servisin durdurulması durumunda otomatik olarak başlatılacaktır.
Yardıma veya başka açıklamalara ihtiyacınız varsa yorumlarınızı yanıtlamaktan memnuniyet duyarız.