MySQL Dienst beendet sich automatisch

HorrorClown

New Member
Hallo,
ich bin relativ neu hier, und hoffe mal das ich hier gerade richtig bin :)

Ich hab aktuell das Problem, dass sich der MySQL Dienst nach etwa 5 bis 8 Tagen automatisch beendet. Wenn ich versuche, den Dienst wieder zu starten (ob über Server- oder Tast-Manager), beendet er sich nach kürzester Zeit wieder, oder geht gar nicht erst an (Status: Wird gestartet -> Beendet).
Natürlich hab ich auch nach diesem Problem gegoogelt, doch es hieße nur das der Error-Log ziemlich aufschlussreich sein könnte. Jedoch konnte ich diesen nicht finden, und auch die Pfadangaben existieren bei mir nicht. Man solle in der my.ini den Error-Log heißt es, jedoch finde ich nur eine my-default.ini, die meines Erachtens nicht geladen wird. Zudem ist diese in einem anderen Ordner, wie angegeben.

Ich bin mit der MySQL Server Konfiguration nicht sehr vertraut, und gehe das ganze ziemlich vorsichtig an.

Diese Probleme hatte ich bisher noch nie auf einem Windows Server.
Beitriebsystem: Windows Server 2012 R2

Ich hoffe ihr könnt mir da weiterhelfen oder eine etwas detaillierte Antwort geben, wie ich das Problem beheben könnte. Gibt mir bitte Bescheid, falls ihr noch mehr Informationen benötigt, an die ich aktuell nicht dachte.

gruß,
HorrorClown
 
Ich hab aktuell das Problem, dass sich der MySQL Dienst nach etwa 5 bis 8 Tagen automatisch beendet. Wenn ich versuche, den Dienst wieder zu starten (ob über Server- oder Tast-Manager), beendet er sich nach kürzester Zeit wieder, oder geht gar nicht erst an (Status: Wird gestartet -> Beendet).
Welcher Windows Server genau? Welcher MySQL-Server?

Man solle in der my.ini den Error-Log heißt es, jedoch finde ich nur eine my-default.ini, die meines Erachtens nicht geladen wird. Zudem ist diese in einem anderen Ordner, wie angegeben.
Beim Installieren des Dienstes muss aber eine Konfiguration angegeben worden sei. hast du mal bei den Diensten nachgesehen, mit welchen Parametern der Dienst gestartet wird?

//EDIT:
Auf meinem lokalen Rechner habe ich mal bei Dienste nachgesehen, da startet der Dienst wie folgt:
C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.6\my.ini" MySQL56
 
Last edited by a moderator:
Hallo,
erst mal vielen Dank für die schnelle Antwort :)

Betriebsystem: Windows Server 2012 R2 Standard
MySQL Server: MySQL Community Server 5.6.19

Meine Startparameter sind nahezu identisch:
"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.6\my.ini" MySQL5.6

Meine my-default.ini sieht wie folgt aus.
Code:
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

[mysqld]

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....


# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M 

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

Bin jetzt aber etwas überfragt, wie ich das richtig hinzufügen müsste, damit Errors richtig geloggt werden.

Ich hatte bereits in die mysqld Sektion folgendes geschrieben:
log_error="C:\mysql_log\mysql_error.log"
Jedoch ohne Erfolg.

Im übrigen steht hier (http://dev.mysql.com/doc/refman/5.1/de/error-log.html) etwas von "Wenn mysqld unerwartet abstürzt und mysqld_safe den Server neu starten muss, schreibt mysqld_safe die Meldung restarted mysqld in das Fehlerlog."
Es wäre schön, wenn das auch funktionieren würde. Müsste ich dafür extra was einstellen?

gruß
 
Das ist richtig. Ich hatte die my-default.ini auch in my.ini umbenannt, jedoch kam nichts.
Ich bin mir nicht sicher, ob dies hier so richtig ist, wenn ich einfach nur folgendes eintrage:
log_error="C:\mysql_log\mysql_error.log"

Musst der Pfad in >"< stehen, muss Ordner sowie Datei schon existieren oder fehlt noch eine weitere Angabe, um das loggen zu aktivieren?

gruß,
HorrorClown
 
Ich bin mir nicht sicher, ob dies hier so richtig ist, wenn ich einfach nur folgendes eintrage:
log_error="C:\mysql_log\mysql_error.log"
Nein, denn log_error ist eine Systemvariable für MySQL, keine Option.
Die Option in der Konfigurationsdatei heißt log-error.
https://dev.mysql.com/doc/refman/5.6/en/server-options.html#option_mysqld_log-error

Musst der Pfad in >"< stehen, muss Ordner sowie Datei schon existieren oder fehlt noch eine weitere Angabe, um das loggen zu
Wenn im Pfad ein Leerzeichen ist, dann ja.

Das ist richtig. Ich hatte die my-default.ini auch in my.ini umbenannt, jedoch kam nichts.
in der Default? Da steht doch gar nichts drin.
Ansonsten sind Fehler bei Defaulteinstellung in einer Datei %USERDOMAIN%.err (meist im Datenverzeichnis von MySQL) zu finden.

Gibt es vor dem Absturz von MySQL irgendwelche Meldungen in Windows-Logs? Ereignisanzeige!
 
Last edited by a moderator:
Wie wurde denn mySQL auf dem Windows Server installiert? Mit vollen Adminrechten?
Normalerweise ist das ja ein msi-Paket, also ein Installer. Damit wird doch die Konfiguration abgefragt und dann wird eine my.ini automatisch angelegt. Die Dienste für Windows werden auch angelegt.

Hast Du schon mal probiert, den mySQL zu deinstallieren und dann neu zu installieren?
Schau auch, wie schon geschrieben, das Ereignisprotokoll an, da steht definitiv irgendwo drin was mit dem los ist.
 
Ich hab aktuell das Problem, dass sich der MySQL Dienst nach etwa 5 bis 8 Tagen automatisch beendet. Wenn ich versuche, den Dienst wieder zu starten (ob über Server- oder Tast-Manager), beendet er sich nach kürzester Zeit wieder, oder geht gar nicht erst an (Status: Wird gestartet -> Beendet).
Wieder MySQL neu starten ohne nachzusehen was los ist, das ist nicht sinnvoll.

Wie ich schon schrieb:
1. Ereignisanzeige ansehen
2. HOSTNAME.err von MySQL ansehen
3. Nach Haupt-Speicherproblemen zum Zeitpunkt des Stops fahnden (zu wenig frei, defekter Speicher, defekte Tabellen, Disk voll, ...)
4. Überlegen ob Anwendungsprogramme den MySQL-Server an die Grenze bringen
 
So,
erst mal vielen Dank für die Antworten.

Zu den Posts von GwenDragon
in der Default? Da steht doch gar nichts drin.
Ansonsten sind Fehler bei Defaulteinstellung in einer Datei %USERDOMAIN%.err (meist im Datenverzeichnis von MySQL) zu finden.
Das ist richtig. Deswegen wunderte es mich ja. Ich hatte keine andere Konfigurationsdatei außer diese. Negativ, da fand sich kein Log vor.

Gibt es vor dem Absturz von MySQL irgendwelche Meldungen in Windows-Logs? Ereignisanzeige!
Das einzige was ich dort für MySQL fand, waren die ätliche Querys die nicht ausgeführt werden konnten, weil der MySQL Server nicht lief.

3. Nach Haupt-Speicherproblemen zum Zeitpunkt des Stops fahnden (zu wenig frei, defekter Speicher, defekte Tabellen, Disk voll, ...)
4. Überlegen ob Anwendungsprogramme den MySQL-Server an die Grenze bringen
Punkt 1 und 2 hab ich oben ja schon beantwortet.
Zu 3) Ich konnte keine Speicherprobleme feststellen. Es läuft alles einwandfrei bis auf der MySQL Server. Alle andere Server laufen auch danach noch ohne Probleme. Nur die nicht, die vom MySQL Server abhängig sind.
Zu 4) Testweise hatte ich vor etwa zwei Wochen ein Gameserver, der eine Verbindung aufbaut und ständig genutzt wird abgeschaltet. Dennoch ist gestern Abend der Server ausgefallen.
Der MySQL dürfte meiner Meinung gar nicht stark ausgelastet sein. Lediglich zwei Foren und ein Gameserver der darauf zugreift. Dies kann in meinen Augen kein Grund für ein Absturz sein.

- - -
Zu catwiesel
Ja, der MySQL Server wurde mit dem Installer als Server Only im Server Machine Modus installiert.

Wie du schon sagtest hab ich heute Morgen den MySQL Server neu installiert. Zudem auch MySQL Workbench, von dem ich übrigens gerade sehr begeistert bin :)
Alle Konfigurationen, die ich während des Installierens gemacht habe wurden nicht gespeichert. So zeigt mir das jedenfalls MySQL Workbench an.
Ebenfalls wird mir dort der Pfad zur Konfigurationsdatei angezeigt. Diese ist jedoch weiterhin nicht vorhanden. Lediglich eine my-default.ini.

Ich kann mir in dieser Workbench jedoch den ErrorLog Log Anzeigen lassen. Bevor ich jetzt auch i.was nochmals an der Konfiguration ändere, warte ich nun erst mal ab, wie es nach der Neuinstallation läuft.

Vielen Dank für eure Hilfe :)
gruß
 
Kann es evtl. ein Zugriffsrechte Problem sein? Hat der User, den Du zum installieren verwendest, Schreibrechte auf diese Festplatte, bzw. Ordner?

Teste mal zum installieren mit rechte Maustaste Ausführen als Administrator.
 
Hm, das bezweifle ich stark. Zugriff müsste in jedem Fall gewährt sein. Zudem kann ja auch alles erstellt werden.
Versteh mich nicht falsch, aber wo wäre da die Logik, wenn alles installiert werden kann, aber für eine Konfigurationsdatei die Rechte nicht ausreichend wären? o.O

Wie gesagt, ich warte jetzt erst mal ab, wie es nun nach der Neuinstallation so läuft.
gruß
 
So. Selbst nach einer Neuinstallation ist es erneut passiert. Als ich heute Morgen nach schaute, schien noch alles in Ordnung. Es wurde ebenfalls angezeigt, dass der MySQL Server nun 6 Tage und etwas um die 20 Stunden lief. Langsam habe ich das Gefühl, dass sobald die 7 Tage erreicht werden, i.was schief läuft.

Folgendes konnte ich nun aus dem Errorlog entnehmen:
Code:
Version: '5.6.19-log'  socket: ''  port: 3306  MySQL Community Server (GPL)
2014-08-06 12:39:34 1a44  InnoDB: Operating system error number 1 in a file operation.
InnoDB: Some operating system error numbers are described at
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/operating-system-error-codes.html
2014-08-06 12:39:34 2416 [ERROR] InnoDB: File .\irace_board\wcf1_tracked_visit.ibd: 'aio write' returned OS error 101. Cannot continue operation

So, laut der Website handelt es sich bei dem Error um folgendes:
ERROR_INVALID_FUNCTION - Incorrect function.

Das hilft mir jetzt aber komplett gar nicht weiter. Jemand eine Idee?
 
Sieht so aus, als ob das Filesystem aio nicht unterstützt.
Wenn ich richtig liege, sollte folgender Eintrag in der my.cnf helfen:
Code:
innodb_use_native_aio=0
Restart des MySQL nicht vergessen.
 
Hm,
ich ja eigentlich davon ausgegangen, dass diese Error kommt, weil er nicht auf den MySQL Server zugreifen kann.

Ich werde dies eben mal machen und erneut hoffen :/
 
So, ich hoffe dieser Doppelpost geht in Ordnung.
Der MySQL Server läuft nun seit 13 Tage ohne Ausfall. Darauf bin ich erst mal stolz und hoffe das dies an aio lag, wie nexus meinte.

Nun wollte ich eine neue Tabelle für den Gameserver erstellen, dabei kommt folgender Error:
Code:
ERROR 27: Can't sync file '.\irace_main\sys_info.frm' to disk (Errcode: 22 - Invalid argument)

Egal was ich eingebe oder wie ich die Tabelle nenne, es kommt immer wieder das gleiche :/
Während beim erstellen von Tabellen dieser Error kommt, laufen Foren und Gameserver derweil noch ohne Probleme.

Das letzte was im Errorlog steht:
Code:
2014-08-07 14:50:17 1352 [Note] C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld: ready for connections.
Version: '5.6.19-log'  socket: ''  port: 3306  MySQL Community Server (GPL)
2014-08-09 11:37:32 1352 [Warning] Did not write failed 'REVOKE ALL PRIVILEGES ON `irace\_main`.* FROM 'iRaceMain'@'%'' into binary log while granting/revoking privileges in databases.

Ich verstehe schon, was mit dem Error gemeint ist, jedoch nicht, was ich nun machen muss, um dies zu beheben.
Der MySQL Server läuft auf einer SSD, auf der noch 55 von 128GB frei sind. Somit kann es ja kaum der Speicher sein.
 
Back
Top