Σφάλμα Σύνδεσης Με Βάση Δεδομένων Και Έλλειψη Χώρου Σε Server

Εάν ξαφνικά το site σας δεν μπορεί να συνδεθεί με τη βάση δεδομένων, υπάρχει ενδεχόμενο αυτό να οφείλεται στην έλλειψη διαθέσιμου χώρου στον server εξαιτίας του οποίου, το service MySQL δε μπορεί να ξεκινήσει.

Αφού συνδεθούμε στον σέρβερ, ελέγχουμε την κατάσταση της MySQL με την εντολή:

Θα δούμε ότι είναι «Inactive».

Στη συνέχεια, ελέγχουμε το διαθέσιμο χώρο με την εντολή:

Η εντολή θα επιστρέψει κάτι σαν το παρακάτω:

Βλέπουμε ότι στον server έχουν μείνει διαθέσιμα 12Mb και ότι χρησιμοποιείται το 100% του χώρου. Θα πρέπει να διαγράψουμε αρχεία από τον server που δε χρειαζόμαστε. Αν δε μπορούμε άμεσα να σβήσουμε αρχεία στον σέρβερ, μία καλή λύση είναι να ελέγξουμε το χώρο που καταλαμβάνουν τα logs και να τα διαγράψουμε.

Αφού κάνουμε sudo su, ελέγχουμε το χώρο που καταλαμβάνουν τα logs με την εντολή:

Θα δούμε ότι τα logs, μπορεί να φτάσουν να καταλαμβάνουν αρκετά gigabyte του δίσκου!

Για να βρούμε ποια logs έχουν μέγεθος πάνω από π.χ. 200MB, χρησιμοποιούμε την παρακάτω εντολή:

Αν υπάρχουν αρχεία με μέγεθος πάνω από 200MB τότε θα εμφανιστούν σε μία λίστα ως εξής:

Εφόσον είστε απόλυτα σίγουροι ότι οι πληροφορίες μέσα στα logs δε σας χρειάζονται, μπορείτε να τα «αδειάσετε» με την εντολή:

Το > δε διαγράφει το αρχείο αλλά διαγράφει τα περιεχόμενά του.

Μπορείτε να συνεχίσετε την ίδια διαδικασία με μικρότερα αρχεία, π.χ. 50Mb

Για να αποφύγετε στο μέλλον την εμφάνιση του προβλήματος, θα μπορούσατε να χρησιμοποιήσετε το logrotate ή να χρησιμοποιήσετε κάποιο script που θα σας στέλνει email όταν π.χ. το 90% του χώρου του σέρβερ χρησιμοποιείται.

Στη συνέχεια κάντε έναν έλεγχο για να δείτε πόσο χώρο καταλαμβάνουν τα journal logs του systemd με την εντολή:

Θα εμφανιστεί ένα μήνυμα παρόμοιο με το εξής:

Με την εντολή:

θα διαγραφούν τα logs που είνα παλαιότερα από 2 ημέρες (2d). Μπορείτε να αλλάξετε την τιμή αυτή σε άλλη της προτίμησής σας.

Κάνοντας έναν έλεγχο (πάλι με την εντολή journalctl --disk-usage) θα δούμε ότι πλέον τα systemd journal logs καταλαμβάνουν πολύ λιγότερο χώρο:

Στη συνέχεια μπορείτε να καθαρίστε την cache του apt:

Τέλος, ελέγξτε τον διαθέσιμο χώρο στον server με dh -H και κάντε εκκίνηση του mysql server με: