Page 1 of 1

Mysql über php neustarten?

Posted: 2016-09-23 14:21
by amiga1200
Mein Mysql Server Crash* leider oft und ich weiß bisher nicht wo dran es liegt.

Dann must jemand unter SSH mysql restart eingeben und alles ist wieder gut.

Nun wollte ich ein PHP Schript schreiben was im Chrom im 1 min. Takt aufgerufen wird, eine Zahl
aus Mysql holt und vergleicht, wenn z.B. <>2016 ist mysql ist mysql Down.
Dann würde ich Mysql über php neustarten
Geht das überhaupt und wie?
Das Script läuft natürlich nur in ein Home Verzeichnis, also über http nicht sichtbar.
Sowas kann man auch über Shell programmieren, aber über php ist schon einfacher!


Crash:
*Ich vermute mal im Projekt wird mit 2 Datenbanken gearbeitet und beim Wechseln kommt es zum Crash.
Die Access und _log error_log sagen überhaupt nichts, dort sind die letzten Aufrufe ganz normal.
Oft sind viele Wochen alles gut, dann aber am Tag 2 mal ein Crash.
Die komplette Hardware samt Hoster wurde schon getauscht, dadurch bs/apache/php/mysql eine Version höher,
Aber mit der neuen Hardware und Hoster ist alles noch schlimmer geworden.
Apache Crash Übrigends mit, wird aber schon 5 Minute durch ein Cron neu gestartet.


Suse 13.1 / MysqlServer Version: 5.6.28
Vorher:
Suse12.1 MysqlServer Version: 5.3 hier 1-2 in 6 Monaten in Crash

@Admin ich konnte eben die rootforum.org über Firefox nicht öffnet, Verbindung ist nicht sicher, irgendwas mit ssl
trotz Firefox Update auf 49

Re: Mysql über php neustarten?

Posted: 2016-09-23 15:41
by Joe User
Was steht im MySQL Error Log?


BTW: Bitte statt der alten Domain http://rootforum.org/ die bereits seit einigen Jahren gültige Domain https://www.rootforum.org/ verwenden, danke.

Re: Mysql über php neustarten?

Posted: 2016-09-23 20:43
by amiga1200
musst gestehen log für myqsl laufen nicht, must ich gleich mal aktivieren.
gerade gemerkt Apache Logs laufen weiter beim Mysql Crash.
So hat man leider keinen Anhaltspunkt.
Ich werde mal eine eig. Log-Funktion über php schreiben, sobald mysql weg ist hätte man den letzten Aufruf


Cool wäre erst mal eine Möglichkeit zu haben, um Mysql automatisch neustarten zulassen beim Crash, falls es nachts passiert.
Ich werde mich wohl mit Shell etwas schreiben.
Vielleicht hat jemand ja ein fertiges Script ?
Ich habe in einer Tabelle einfach einen festen Wert der wird abgefragt.

Re: Mysql über php neustarten?

Posted: 2016-09-23 22:48
by Joe User
MySQL einfach so (mit Gewalt) nach einem Crash wieder zu starten, kann ganz schnell in einem Datenverlust enden und das will man definitiv nicht. Aus diesem Grund ist das MySQL Error Log sehr wichtig, die Apache Logs sind hierbei hingegen völlig wertlos.

Tue Dir also selbst einen Gefallen und vergiss die Idee mit dem automatischen Restart ganz schnell wieder.

Re: Mysql über php neustarten?

Posted: 2016-09-23 23:07
by Joe User
Solltest Du das Risiko eines Datenverlustes wirklich und entgegen meiner Empfehlung eingehen wollen, dann könnte dieses Shellscript als Cron für root helfen (gegebenenfalls selbst anpassen):

Code: Select all

#!/bin/sh

is_up="$(/usr/bin/mysqladmin ping 2>&1)"
if [ "$is_up" = "mysqld is alive" ] ; then
  echo "UP" > /dev/null
elif [ "$is_up" != "mysqld is alive" ] ; then
  /etc/init.d/mysqld restart
else
  echo "Unknow exit status"
  exit 1
fi
Voraussetzung ist, dass /root/.mylogin.cnf existiert und gültige Daten enthält. Erzeugen lässt sie sich bei Bedarf als root so:

Code: Select all

mysql_config_editor set --login-path=client --host=localhost --host=127.0.0.1 --user=root --password