{"id":8967,"date":"2016-06-11T16:34:52","date_gmt":"2016-06-11T14:34:52","guid":{"rendered":"http:\/\/udo.springfeld.eu\/blog\/?p=8967"},"modified":"2021-01-08T12:47:16","modified_gmt":"2021-01-08T11:47:16","slug":"wordpress-error-establishing-a-database-connection-selbstheilung","status":"publish","type":"post","link":"https:\/\/udo.springfeld.eu\/blog\/2016\/06\/11\/wordpress-error-establishing-a-database-connection-selbstheilung\/","title":{"rendered":"WordPress &#8222;Error establishing a database connection&#8220; Selbstheilung"},"content":{"rendered":"<p>WordPress ist abh\u00e4ngig, und zwar von MySQL.  <a href=\"https:\/\/www.blizzcorp.fr\/coque-iphone-xs-max.html\">coque iphone xs max<\/a> MySQL ist uralt und zudem ein Oracle-Produkt, kein Wunder also das es hin und wieder abst\u00fcrzt. In dem Fall gibt WordPress nur die etwas schmucklose Fehlermeldung &#8222;Error establishing a database connection&#8220; aus, die man aber abfangen und die Datenbank bei dem Anlass neu starten kann.  <a href=\"https:\/\/www.hostelleriedescomtes.fr\/coque-iphone-x.html\">coque iphone x<\/a> Es ist nur etwas mehr Arbeit als ein Plugin zu installieren, das dann ohnehin nicht funktioniert.o<\/p>\n<p>In einer der <a href=\"https:\/\/github.com\/WordPress\/WordPress\/search?utf8=%E2%9C%93&#038;q=error+establishing+a+database+connection\">drei Fundstellen im WordPress Core auf Github<\/a> liegt eine hervorragende M\u00f6glichkeit verborgen, die an Stelle aufw\u00e4ndigen M\u00fclls 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 \u00fcberpr\u00fcft ob eine Datei namens wp-content\/db-error.php existiert:<\/p>\n<p> <code>\/\/ Load custom DB error template, if present.  <a href=\"https:\/\/www.stagefootcahagnes.fr\/\">coque iphone pas cher<\/a> if ( file_exists( WP_CONTENT_DIR .  <a href=\"https:\/\/www.blizzcorp.fr\/\">coque iphone<\/a> '\/db-error.php' ) ) { require_once( WP_CONTENT_DIR . '\/db-error.php' ); die(); }<\/code> <\/p>\n<p>In die kann man nat\u00fcrlich hervorragend ein eigens zu erzeugendes Shellskript (in meinem Fall \/usr\/sbin\/my.sh) ansprechen, das nichts anderes tut als MySQL erneut aufzurufen:<\/p>\n<p> <code>#!\/bin\/bash service mysql start<\/code> <\/p>\n<p>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.  coque iphone pas cher \/etc\/sudoers mit visudo aufrufen und folgende beiden Zeilen hinzuf\u00fcgen (www-data ist in dem Fall der Nutzer, mit dem der Apache ausgef\u00fchrt wird und muss ggf. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress ist abh\u00e4ngig, und zwar von MySQL. coque iphone xs max MySQL ist uralt und zudem ein Oracle-Produkt, kein Wunder also das es hin und wieder abst\u00fcrzt. In dem Fall gibt WordPress nur die etwas schmucklose Fehlermeldung &#8222;Error establishing a database connection&#8220; aus, die man aber abfangen und die Datenbank bei dem Anlass neu starten [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[189],"tags":[61],"class_list":["post-8967","post","type-post","status-publish","format-standard","hentry","category-tipps-tutorials-tricks-tweaks","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/udo.springfeld.eu\/blog\/wp-json\/wp\/v2\/posts\/8967","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/udo.springfeld.eu\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/udo.springfeld.eu\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/udo.springfeld.eu\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/udo.springfeld.eu\/blog\/wp-json\/wp\/v2\/comments?post=8967"}],"version-history":[{"count":7,"href":"https:\/\/udo.springfeld.eu\/blog\/wp-json\/wp\/v2\/posts\/8967\/revisions"}],"predecessor-version":[{"id":10880,"href":"https:\/\/udo.springfeld.eu\/blog\/wp-json\/wp\/v2\/posts\/8967\/revisions\/10880"}],"wp:attachment":[{"href":"https:\/\/udo.springfeld.eu\/blog\/wp-json\/wp\/v2\/media?parent=8967"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/udo.springfeld.eu\/blog\/wp-json\/wp\/v2\/categories?post=8967"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/udo.springfeld.eu\/blog\/wp-json\/wp\/v2\/tags?post=8967"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}