När du hanterar Linux-servrar med databaser är det oväntade stoppet av mysqld-tjänsten av olika anledningar ingen trevlig situation. I den här handledningen lär du dig hur du kan starta MySQL automatiskt om det stannar av någon anledning, med hjälp av ett skript och crontab.
Av okända skäl slutar ibland mysqld-demonen plötsligt utan att starta om automatiskt vid vissa tider. Eftersom serverloggar inte har hjälpt mig mycket, sökte jag efter en lösning för att kontrollera om mysqld-tjänsten körs, och i fall den inte är aktiv, starta den via crontab.
Koppprins
Hur startar du MySQL automatiskt om det stannar? [Linux]
På MySQL-servrar med MariaDB bör mysqld-tjänsten normalt sett starta om automatiskt när den stannar av olika anledningar. Om det inte händer kommer skriptet nedan att periodiskt kontrollera om mysqld-demonen körs och hjälpa dig att starta MySQL automatiskt om den är avstängd.
Mitt test är gjort på OS Debian 12, MariaDB 10.11.4.
1. Öppna konsolen och skapa filen för det framtida skriptet som startar mysqld-tjänsten om den stoppas.
Jag föredrar att använda editor "nano
".
sudo nano /usr/local/bin/autostart_mysql.sh
2. I den nya filen "autostart_mysql.sh
" kopiera skriptet nedan:
#!/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. Spara den nya filen "autostart_mysql.sh
", ställ sedan in körrättigheter.
chmod +x /usr/local/bin/autostart_mysql.sh
4. Navigera till "/usr/local/bin/
" och testa skriptet med kommandot: "./autostart_mysql.sh
".
Just nu, skriptet du utgår från MySQL automatiskt körs endast när den körs manuellt. Tillagd till crontab, kommer den att köras med jämna mellanrum, med ett tidsintervall som ställts in av oss. Jag valde att manuset "autostart_mysql.sh
” ska köras var 3:e minut.
Hur lägger du till ett skript i crontab?
För att lägga till ett skript till crontab som ska köras med jämna mellanrum, vid ett tidsintervall som du ställt in, kör kommandot: crontab -e
, lägg sedan till kommandoraden i slutet av filen.
*/3 * * * * /usr/local/bin/autostart_mysql.sh
*/3
anger att skriptet kommer att köras var tredje minut.
Spara crontab och avsluta editorn.
Efter detta steg, kontrollera tjänsten mysqld
det kommer att göras var tredje minut, och om tjänsten stoppas kommer den att startas automatiskt.
Behöver du hjälp eller andra förtydliganden svarar vi gärna på dina synpunkter.