Pārvaldot Linux serverus ar datubāzēm, mysqld servisa negaidīta apturēšanās dažādu iemeslu dēļ nav patīkama situācija. Šajā ceļvedī jūs uzzināsiet, kā automātiski startēt MySQL, ja tas apstājas jebkuru iemeslu dēļ, izmantojot skriptu un crontab.
Dēļ nezināmiem iemesliem dažreiz mysqld demons pēkšņi apstājas, nesākot automātisku restartēšanu noteiktās stundās. Tā kā servera žurnāli man nepalīdzēja daudz, es meklēju risinājumu, kā pārbaudīt, vai mysqld serviss darbojas, un gadījumā, ja tas nav aktīvs, to startēt ar crontab palīdzību.
Saturu
Kā automātiski startēt MySQL, ja tas apstājas? [Linux]
MariaDB MySQL serveros parasti mysqld servisam vajadzētu automātiski restartēties, kad tas apstājas dažādu iemeslu dēļ. Ja tas nenotiek, zemāk esošais skripts periodiski pārbaudīs, vai mysqld demons darbojas, un palīdzēs automātiski startēt MySQL, ja tas ir apturēts.
Mans tests ir veikts operētājsistēmā Debian 12, MariaDB 10.11.4.
1. Atveriet konsoli un izveidojiet failu nākotnes skriptam, kas sāks mysqld pakalpojumu, ja tas tiks apturēts.
Es gribētu izmantot redaktoru "nano
".
sudo nano /usr/local/bin/autostart_mysql.sh
2. Jaunajā failā “autostart_mysql.sh
” nokopējiet zemāk esošo skriptu:
#!/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. Saglabājiet jauno failu “autostart_mysql.sh
“, pēc tam iestatiet izpildes atļaujas.
chmod +x /usr/local/bin/autostart_mysql.sh
4. Dodieties uz “/usr/local/bin/
un pārbaudiet skriptu ar komandu: "./autostart_mysql.sh
".
Šobrīd skripts, no kura jūs sākat MySQL automātiski darbosies tikai tad, ja tas tiks izpildīts manuāli. Pievienots crontab, tas darbosies periodiski mūsu noteiktā laika intervālā. Es izvēlējos šo skriptu "autostart_mysql.sh
” jāskrien ik pēc 3 minūtēm.
Kā pievienot skriptu crontab?
Lai crontab pievienotu skriptu, kas periodiski palaistu jūsu iestatītajā laika intervālā, palaidiet komandu: crontab -e
, pēc tam faila beigās pievienojiet komandrindu.
*/3 * * * * /usr/local/bin/autostart_mysql.sh
*/3
norāda, ka skripts tiks izpildīts ik pēc 3 minūtēm.
Saglabājiet crontab un izejiet no redaktora.
Pēc šīs darbības pārbaudiet pakalpojumu mysqld
tas tiks darīts ik pēc 3 minūtēm, un, ja pakalpojums tiks apturēts, tas tiks automātiski palaists.
Ja jums nepieciešama palīdzība vai citi paskaidrojumi, mēs ar prieku atbildēsim uz jūsu komentāriem.