WordPress „Error establishing a database connection“ Selbstheilung

WordPress ist abhängig, und zwar von MySQL. MySQL ist uralt und zudem ein Oracle-Produkt, kein Wunder also das es hin und wieder abstürzt. In dem Fall gibt WordPress nur die etwas schmucklose Fehlermeldung „Error establishing a database connection“ aus, die man aber abfangen und die Datenbank bei dem Anlass neu starten kann. Es ist nur etwas mehr Arbeit als ein Plugin zu installieren, das dann ohnehin nicht funktioniert.o

In einer der drei Fundstellen im WordPress Core auf Github liegt eine hervorragende Möglichkeit verborgen, die an Stelle aufwändigen Mülls wie monit das Ereignis als Anlass nehmen MySQL neu zu starten: In der Datei wp-includes/functions.php wird in der Funktion dead_db die Fehlermeldung ausgegeben, zuvor aber überprüft ob eine Datei namens wp-content/db-error.php existiert:

// Load custom DB error template, if present.
if ( file_exists( WP_CONTENT_DIR . '/db-error.php' ) ) {
require_once( WP_CONTENT_DIR . '/db-error.php' );
die();
}

In die kann man natürlich hervorragend ein eigens zu erzeugendes Shellskript (in meinem Fall /usr/sbin/my.sh) ansprechen, das nichts anderes tut als MySQL erneut aufzurufen:

#!/bin/bash
service mysql start

Damit das aus der db-error.php per exec() aufgerufene Skript auch funktioniert, muss man es noch berechtigen, muss also dem Apache-Prozess noch den Terminal- und Passwort-lose Berechtigung erteilen, d.h. /etc/sudoers mit visudo aufrufen und folgende beiden Zeilen hinzufügen (www-data ist in dem Fall der Nutzer, mit dem der Apache ausgeführt wird und muss ggf. durch einen anderen Benutzernamen ersetzt werden):

apache ALL=NOPASSWD: /usr/sbin/my.sh
Defaults!/usr/sbin/my.sh !requiretty

Fertig.

Ad Blocker Blocker Blocker!

Sie haben keinen Ad Blocker aktiviert, möglicherweise weil sie Kostenloskulturkritiker hereingefallen sind.

Ad Blocker Blocker schaden der geistigen Gesundheit, denn sie verblöden den Kostenloskulturkonsumenten.

Geben sie Ad Blocker Blockern keine Chance.

Installieren sie noch heute uBlock oder ähnliche!

▶ Filmtipp: Who Am I - kein System ist sicher ★★★★✰


Nudeln selbstgemacht / Rechts, extrem / News unzensiert