2016-06-06 4 views
0

Ich verwende einen Linux-Server, der auf AWS gehostet wird, und aufgrund der geringeren Menge an verfügbarem RAM geht die Webseite aus und ich erhalte den Fehler "Fehler beim Herstellen der Verbindung zur Datenbank".Können wir ein Skript schreiben, um MySQL jedes Mal neu zu starten, wenn die Website nicht verfügbar ist?

Ich muss MySQL jedes Mal neu starten, wenn dies passiert.

Können wir diesen Prozess automatisieren?

Der Befehl, den ich verwenden, um die LAMPP Server neu zu starten ist:

sudo /opt/lampp/lampp restart 
+1

Sie ein Skript benötigen, die alle x Minuten, wenn der Server überprüft ist, du wil immer mit ein bisschen eine Lücke (Zeit zwischen den Prüfungen) enden. Der Prozess könnte immer noch ausgeführt werden, aber Sie können keine Verbindung herstellen. Es alle 10 Sekunden zu überprüfen, scheint kein guter Plan (überhaupt) zu sein. Sie riskieren auch andere Probleme, ich würde mehr Speicher wählen. Repariere es nicht mit Skripten ... geh mit einer größeren Instanz. – Roger

Antwort

1

ein Bash-Skript Verwenden Sie den mysql-Port und starten Sie ihn neu zu überwachen, wenn es nach unten

Gerade ist zu Demo, wie es funktioniert

Der nc-Befehl überprüft, dass Port 3306 (mysql-Port) kontaktierbar ist Wenn es dann $ ist? wird auf Null gesetzt, also zählt das als "up" sonst $? ist unten. Vielleicht möchten Sie beispielsweise für anstelle von „nc“, einen anderen Befehl verwenden echo "select 1;" | mysql zu versuchen, eine nichts tun mysql Befehl

while [ 1 ] 
    do sleep 1 
    nc -z localhost 3306 
    if [ $? == 0 ]; then echo "up" 
    else echo "down" 
    fi 
done 

Die aktuelle Version zu laufen könnten Sie so

while [ 1 ] 
    do sleep 10 
    nc -vz localhost 3306 
    if [ $? != 0 ]; then /opt/lampp/lampp restart 
    fi 
done 

aussehen nutzen könnten Sie können ein Fenster geöffnet (vielleicht mit dem „screens“ Befehl zu) verlassen und führen Sie diesen 24x7

Wenn Sie das Zeitintervall auf 1 Minute erhöhen können, dann wäre es in Ordnung sein aus cron wie diese

01 laufen mein Linux-Server mit einem großen SWAP/Cache

in crontab

* * * * * /path/to/script 

Skript

#!/bin/bash 
    nc -vz localhost 3306 > /dev/null 2>&1 
    if [ $? != 0 ]; then /opt/lampp/lampp restart 
    fi 
0

AWS EC2 bietet IOPs platzt, (jede Minute laufen), damit ich konfigurieren. Ich verstehe, dass dies dem InnoDB-Konzept zuwiderläuft, dass MySQL alles im Speicher haben möchte. Zusätzlich sollten Sie die Speicherbelegung von PHP erweitern, wenn Sie LAMP verwenden.

http://charmingwebdesign.com/how-to-add-swap-partition-on-ec2-linux-instance/

http://charmingwebdesign.com/wordpress-support-plugin-woocommerce-excelling-ecommerce-what-is-ideal-php-memory-for-woocommerce/

Verwandte Themen