Σφάλμα Σύνδεσης Με Βάση Δεδομένων Και Έλλειψη Χώρου Σε 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 με:

 

Webhosting Στην DigitalOcean

Κάντε εύκολα deploy έναν SSD cloud server στην DigitalOcean μέσα σε 55 δευτερόλεπτα. Χρησιμοποιήστε τον σύνδεσμο https://m.do.co/t/5b5dc69cc29c για να κερδίσετε credit $10 που ισοδυναμεί με δωρεάν φιλοξενία για 2 μήνες στο μικρό αλλά καλό πακέτο της εταιρείας.

Webhosting Στη Linode

Για αξιόπιστη φιλοξενία ιστοσελίδας το DevBlog.gr σας προτείνει τη Linode. Η Linode προσφέρει SSD Cloud Hosting με τιμές που ξεκινούν από $5/μήνα για σέρβερ με 1GB RAM, 20 GB SSD Storage, 1 TB Transfer. Αποκτείστε ένα οικονομικό πακέτο φιλοξενίας στην Linode τώρα! 🙂

Μετατροπή Δυναμικού Site Σε Στατικό Με Wget

Ένας τρόπος για να μετατρέψετε ένα δυναμικό site σε στατικό, είναι να «κατεβάσετε» τοπικά ολόκληρο το site με τη βοήθεια της εντολής wget:

Επεξήγηση:

  • ––recursive: κατεβάζει ολόκληρο το site
  • ––no-clobber: δεν κάνει overwrite αρχεία που ήδη έχετε κατεβάσει
  • ––page-requisites: κατεβάζει όλα τα αρχεία που συνθέτουν κάθε σελίδα (εικόνες, CSS, JS κλπ)
  • ––html-extension: αποθηκεύει τα αρχεία ως .html
  • ––wait=3: περιμένει πχ «3» δευτερόλεπτα ανάμεσα σε κάθε αίτημα για κατέβασμα αρχείου
  • ––limit-rate: βάζει όριο στον ρυθμό κατεβάσματος αρχείων. π.χ. 60K είναι 60 kilobytes/second που ισούται με 480Kbps
  • ––convert-links: μετατρέπει τα links ώστε να δουλεύει το site τοπικά (offline)
  • ––restrict-file-names=windows: μετέτρεψε τα αρχεία ώστε να λειτουργούν σωστά και σε Windows
  • ––domains example.com: δίνει εντολή να μην κατεβούν αρχεία που δεν ανήκουν στο domain example.com

Διαβάστε το υπόλοιπο άρθρο »