Όταν διαχειρίζεστε Linux servers με βάσεις δεδομένων, η απροσδόκητη διακοπή της υπηρεσίας mysqld για διάφορους λόγους δεν είναι μια ευχάριστη κατάσταση. Σε αυτό το εγχειρίδιο θα μάθετε πώς να ξεκινήσετε αυτόματα το MySQL εάν σταματήσει για οποιοδήποτε λόγο, χρησιμοποιώντας ένα σενάριο (script) και το crontab.
Για άγνωστους λόγους, ο δαίμονας mysqld σταματά οριακά χωρίς να ξεκινήσει αυτόματα σε κάποιες ώρες. Καθώς τα logs του server δεν με βοήθησαν πολύ, αναζήτησα μια λύση για να ελέγχω την εκτέλεση της υπηρεσίας mysqld, και σε περίπτωση που αυτή δεν είναι ενεργή, να την ξεκινώ μέσω του crontab.
Καμπίνα
Πώς να ξεκινήσετε αυτόματα το MySQL εάν σταματήσει; [Linux]
Σε διακομιστές MySQL με MariaDB, συνήθως η υπηρεσία mysqld θα έπρεπε να ξεκινά αυτόματα όταν σταματά για διάφορους λόγους. Αν αυτό δεν συμβαίνει, το παρακάτω σενάριο θα ελέγχει περιοδικά εάν ο δαίμονας mysqld εκτελείται και θα σας βοηθήσει να ξεκινήσετε αυτόματα το MySQL αν έχει σταματήσει.
Η δοκιμή μου έγινε στο λειτουργικό σύστημα Debian 12, MariaDB 10.11.4.
1. Ανοίξτε την κονσόλα και δημιουργήστε το αρχείο για το μελλοντικό σενάριο που θα ξεκινήσει την υπηρεσία mysqld εάν διακοπεί.
Προτιμώ να χρησιμοποιώ το πρόγραμμα επεξεργασίας"nano
".
sudo nano /usr/local/bin/autostart_mysql.sh
2. Στο νέο αρχείο "autostart_mysql.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
3. Αποθηκεύστε το νέο αρχείο "autostart_mysql.sh
" και μετά ορίστε δικαιώματα εκτέλεσης.
chmod +x /usr/local/bin/autostart_mysql.sh
4. Μεταβείτε στο "/usr/local/bin/
" και δοκιμάστε το σενάριο με εντολή: "./autostart_mysql.sh
".
Αυτήν τη στιγμή, το σενάριο από το οποίο ξεκινάτε MySQL αυτόματα θα εκτελεστεί μόνο όταν εκτελεστεί χειροκίνητα. Προστέθηκε στο crontab, θα εκτελείται περιοδικά, σε ένα χρονικό διάστημα που ορίζεται από εμάς. Εγώ επέλεξα αυτό το σενάριο"autostart_mysql.sh
” να εκτελείται κάθε 3 λεπτά.
Πώς προσθέτετε ένα σενάριο στο crontab;
Για να προσθέσετε ένα σενάριο στο crontab για να εκτελείται περιοδικά, σε ένα χρονικό διάστημα που έχετε ορίσει, εκτελέστε την εντολή: crontab -e
, στη συνέχεια προσθέστε τη γραμμή εντολών στο τέλος του αρχείου.
*/3 * * * * /usr/local/bin/autostart_mysql.sh
*/3
καθορίζει ότι το σενάριο θα εκτελείται κάθε 3 λεπτά.
Αποθηκεύστε το crontab και βγείτε από το πρόγραμμα επεξεργασίας.
Μετά από αυτό το βήμα, ελέγξτε την υπηρεσία mysqld
θα γίνεται κάθε 3 λεπτά και αν διακοπεί η υπηρεσία, θα ξεκινήσει αυτόματα.
Εάν χρειάζεστε βοήθεια ή άλλες διευκρινίσεις, θα χαρούμε να απαντήσουμε στα σχόλιά σας.