Κατά τη διαχείριση διακομιστών βάσεων δεδομένων Linux, ο απροσδόκητος τερματισμός της υπηρεσίας mysqld μπορεί να προκαλέσει σημαντική ταλαιπωρία. Σε αυτό το σεμινάριο, θα δείτε πώς να αυτοματοποιήσετε την εκκίνηση της MySQL εάν σταματήσει για διάφορους λόγους χρησιμοποιώντας μια δέσμη ενεργειών και μια κονσόλα.
Για αδιευκρίνιστους λόγους, ο δαίμονας mysqld μπορεί να σταματήσει ξαφνικά και να μην επανεκκινήσει αυτόματα σε ορισμένες περιπτώσεις ή χρόνους. Δεδομένου ότι τα αρχεία καταγραφής διακομιστή δεν παρέχουν χρήσιμες πληροφορίες από αυτή την άποψη, αναζήτησα μια λύση για την παρακολούθηση της κατάστασης της υπηρεσίας mysqld. Έτσι, στην περίπτωση που δεν είναι ενεργό, η αυτόματη επανεκκίνηση θα πρέπει να ξεκινήσει μέσω ενός cronjob.
Ας δούμε το βήμα προς βήμα σεμινάριο για την επίλυση αυτού του προβλήματος. (Δοκιμασμένο σε Linux Debian 12)
Πώς να αυτοματοποιήσετε την εκκίνηση της MySQL εάν σταματήσει
Το πρώτο βήμα είναι να δημιουργήσετε το σενάριο που θα επανεκκινήσει την υπηρεσία mysqld εάν διακοπεί.
1. Ανοίξτε ένα πρόγραμμα επεξεργασίας κειμένου (π.χ nano
ή vi
) και αντιγράψτε το παρακάτω σενάριο σε νέο αρχείο. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε:
nano /path/to/your/script.sh
Αντιγράψτε το σενάριο:
#!/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
Αποθηκεύστε και κλείστε το πρόγραμμα επεξεργασίας κειμένου.
2. Δώστε δικαιώματα εκτέλεσης στο σενάριο για να βεβαιωθείτε ότι μπορεί να εκτελεστεί:
chmod +x /path/to/your/script.sh
3. Προσθέστε το παρακάτω σενάριο στο crontab (εντολή: crontab -e
σας επιτρέπει να επεξεργαστείτε):
*/3 * * * * /path/to/your/script.sh
Η παραπάνω γραμμή καθορίζει ότι το σενάριο θα εκτελείται κάθε 3 λεπτά. σύμβολο */3
σημαίνει "κάθε 3 λεπτά". Βασικά, με αυτή τη γραμμή αυτοματοποιείτε την εκκίνηση της MySQL με script.sh
.
4. Αποθηκεύστε και κλείστε το αρχείο crontab.
Τώρα, το σενάριο σου script.sh
θα εκτελείται αυτόματα κάθε 3 λεπτά για έλεγχο της κατάστασης της υπηρεσίας mysqld
και επανεκκινήστε το εάν χρειάζεται.
Εάν κάτι πάει στραβά και χρειάζεστε βοήθεια, θα χαρούμε να απαντήσουμε στα σχόλιά σας.