OBS/Adminhilfe/Häufige MySQL Fehler
Dies ist eine zugriffsgeschützte Seite.
- System Überwachung
- DEP deaktivieren
- Darstellung unter Windows 7
- Einwahl auf Windows 2000 Server
- Preislisten
- Datenbank Sicherung
- Customize
- Zentrale
- Support Macro
- Service Debug
- Historienprotokoll (Datenänderung OBS)
- Fernwartungsprobleme
- Startparameter
- Fehler beim Kassenabschluss
- Diverse Informationen
- A ras.pbk
- B Command Line Interpreter
- C File Zilla Benutzer XML erzeugen
- D1 OBS_UPDATE.EXE zum OBS Update Server hochladen
- D2 SUPPORT_MACRO zum OBS Update Server hochladen
- H1 Remote Service Protokoll-Übersicht (Alles)
- H Remote ServiceProtokoll-Übersicht
- I Remote Service Commands
- I1 (Admin) Globaler Hinweis für Updates
- J Liste der OBS Updates
- K Angemeldete Service Firmen
- L Systeminformationen einlesen
- M Kundendaten anzeigen
- M1 Kundendatenbankinformationen anzeigen
- N Kundendaten einlesen
- O Kunden-Update Informationen anzeigen
- P Modul Registrierung OBS
- Q App Verwaltung
- S1 Firmen Statistik Protokolle OBS
- S2 Statistik Notfallkassen
MySQL Fehler
Hier werden verschiedene MySQL-Probleme und deren Lösungen aufgeführt.
Umbrüche in Datenbankfeldern
Ein Umbruch steht in der Datenbank als CHAR(13,10) und wird meistens durch 2 nebeneinander stehende Kästchen dargestellt. Umbrüche können mit einem einfachen Replace aus der Datenbank entfernt werden:
UPDATE rechsta SET a_name = REPLACE( a_name, CHAR(13,10), '' );
Host 'host_name' is blocked because of many connection errors
Es kann passieren, dass beim Verbinden zur Datenbank von einem bestimmten PC aus die Meldung Host 'host_name' is blocked because of many connection errors angezeigt wird.
Kurzfristig kann dieses Problem behoben werden, indem der Befehl
FLUSH HOSTS;
ausgeführt wird. Es sollte zudem folgender Befehl ausgeführt werden, damit mehr Verbindungsfehler zulässig sind:
SET GLOBAL max_connect_errors = 1000;
Dieser Wert gilt allerdings nur für die aktuelle Sitzung. Sobald die Datenbank das nächste mal neu gestartet wird, werden die Werte aus der my.ini verwendet. Es sollte auf jedenfall also auch in der my.ini der Wert angepasst werden. Hierzu sucht man den Eintrag max_connect_errors und ändert den Wert hier ebenfalls auf 1000.
Weitere Informationen zu dem Problem gibt es auf der MySQL Seite:
Blocked-Host Problem
Too many connections
Bei großen Firmen kann die maximale Anzahl an zulässigen Verbindungen überschritten werden. Jeder weitere Versuch sich zu verbinden wird dann mit der Meldung Too many connection abgelehnt. Normalerweise reserviert MySQL eine extra Sitzung für Super-User, da sich bei OBS jedoch jeder mit dem selben MySQL Benutzer anmeldet kann es notwendig sein, einen OBS Dienst zu beenden um auf die Datenbank zugreifen zu können. Für die aktuelle Sitzung sollte dann die Anzahl der Verbindungen mit folgendem Befehl hochgesetzt werden:
SET GLOBAL max_connections = 1000;
Dieser Wert gilt allerdings nur für die aktuelle Sitzung. Sobald die Datenbank das nächste mal neu gestartet wird, werden die Werte aus der my.ini verwendet. Es sollte auf jedenfall also auch in der my.ini der Wert angepasst werden. Hierzu sucht man den Eintrag max_connections und ändert den Wert hier ebenfalls auf 1000. (oder einen höheren Wert, je nach Bedarf)
Weitere Informationen zu dem Problem gibt es auch im MySQL Handbuch: http://dev.mysql.com/doc/refman/5.6/en/too-many-connections.html
.deleted Dateien im Datenbankverzeichnis
Es kann vorkommen, dass Dateien der Datenbank vom Vierenscnanner umbenannt werden und somit ein Zugriff nicht mehr möglich ist. Bei Geostones ergab sich dabei folgendes Bild:
Datei + 8-stelliger Hex + .deleted
Beispiel: loginproto.MYI.047BCBFF.deleted
Lösung des aktuen Problems
Um dies schnell wieder in den Ursprung zu versetzen, kann man das Multi-Umbenennungs-Tool vom Total Commander verwenden.
Dabei ist auf folgendes zu achten: 1. für die Suche die Optionen [E] und RegEx aktivieren, damit Dateiendung ebenfalls beachtet wird und reguläre Ausdrücke verwendet werden können 2. Suche nach dem Muster Punkt + beliebige Zeichen (hier unsere eigentliche Dateiendung) + Punkt + beliebige Zeichen (hier der Hex-Wert) + Punkt + beliebige Zeichen (alternativ könnte auch fest nach "deleted" gesucht werden) 3. Ersetzen durch auf Punkt + $1. Die beliebigen Werte der Suche können der Reihenfolge nach mich $1, $2, $3 usw. angesprochen und verwendet werden.
So suchen wir über den vollen Dateinamen und ersetzen den Mist, den der Vierenscanner produziert hat wieder mit der ursprünglichen Endung.
\.(.*)\.(.*)\.(.*)
Langfristige Lösung
Um dem Problem vorzubeugen sollte im MySQL Ordner ein TEMP Ordner angelegt und in der Datenbank in der my.ini eingetragen werden. Beispiel:
tmpdir = "C:/MySQL/TEMP"
Anschließend muss in GData eine Außnahme für dieses Verzeichnis hinzugefügt werden.
MySQL Crash
Wenn eine MySQL crasht (z.B. durch einen Stromausfall des Servers), sollte die folgende Liste der Reihe nach bearbeitet werden.
Es wird hierbei davon ausgegangen, dass es nicht mehr möglich ist, die Datenbank normal zu starten.
Fehlerprotokkoll prüfen
Zunächst sollte ein Blick in die .ERR Datei des MySQL Servers geworfen werden um zu schauen, was überhaupt los ist.
Recovery Modus
Da die DB sich nicht starten lässt kann nun in der My.INI der Recovery Modus aktiviert werdern, in dem der folgende Eintrag ganz unten eingefügt wird:
innodb_force_recovery = 1
Hierbei wird die erste Stufe des Recovery Modus verwendet (vgl. [MySQL Anleitung zu forcing innodb recovery]). Nun sollte erneut versucht werden die Datenbank zu starten. Ist dies nicht möglich wird der Eintrag in der My.INI nun erhöht:
innodb_force_recovery = 2
Nun wird wieder versucht die Datenbank zu starten. Der Wert muss nun schrittweise erhöht werden bis sich die Datenbank wieder starten lässt. Je nachdem bei welchem Wert dies passiert sind unterschiedliche Herangehensweisen möglich.
Recovery Level 1-2
Als Erstes sollte ein Dump der DB erstellt werden.
Recovery Level >= 3
In diesem Fall