MySQL Fehlermeldungen
Aus VMS1 Tutorial
Fehlermeldungen des MySQL Servers bestehen aus einem Fehlercode und einem kurzen Text, der den Fehler beschreibt.
Diese Fehlermeldungen erhält man bspw. bei der Benutzung des Verwaltungstools PhpMyAdmin oder über die PHP-Funktionen mysql_error() und mysql_errno().
Inhaltsverzeichnis |
Häufige MySQL Fehlermeldungen
Code | Fehlermeldung (englisch) | Fehlermeldung (deutsch) |
---|---|---|
1040 | Too many connections | Zu viele Verbindungen |
1044 | Access denied for user ' U ' to database ' D ' | Benutzer ' U ' hat keine Zugriffsberechtigung für Datenbank ' D ' |
1045 | Access denied for user ' U ' (using password: YES/NO) | Benutzer ' U ' hat keine Zugriffsberechtigung (verwende Passwort: JA/NEIN) |
1046 | No database selected | Keine Datenbank ausgewählt |
1054 | Unknown column ' SP ' in ' (field list/where clause) ' | Unbekanntes Tabellenfeld ' SP ' in (field list/where clause) |
1062 | Duplicate entry ' Y ' for key X | Doppelter Eintrag ' Y ' für Schlüssel X |
1136 | Column count doesn't match value count at row X | Anzahl der Felder stimmt nicht mit der Anzahl der Werte in Zeile X überein |
1146 | Table ' DB.T ' doesn't exist | Tabelle ' DB.T ' existiert nicht |
1149 | You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use | Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen |
1267 | Illegal mix of collations (latin1_german2_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation '=' | Unerlaubte Mischung von Sortierreihenfolgen (latin1_german2_ci,IMPLICIT) und (latin1_swedish_ci,IMPLICIT) für Operation '=' |
1040
Die Anzahl der maximal möglichen Verbindungen wurde erreicht. Wenn man Zugriff auf die Konfiguration hat, kann man diese Anzahl mit der Option max_connections einstellen, allerdings kann ein zu hoch angelegter Wert zu einer schlechten Performance führen, da dann die Ressourcen des Servers komplett ausgenutzt werden. Es empfiehlt sich, die Ursache für die vielen Verbindungen zu finden und die Konfiguration komplett zu optimieren, bspw. mit dem Skript Tuning-primer.sh. Wird die Webseite auf einem kleinen Webspace Paket betrieben, hat aber viele aktive Benutzer, kann es nötig sein, auf ein größeres Paket oder einen vServer zu wechseln.
1044 / 1045
Die Angaben zur Datenbankverbindung in der Datei /lib/functions.lib.php prüfen!
1046
Sollte im VMS nicht vorkommen, da die Datenbank im Aufruf von db_connect() ausgewählt wird. Will man in PHPMyAdmin einen Datenbankbefehl ausführen, muss man meistens zuvor eine Datenbank aus der Auswahlliste wählen!
1054
In einer MySQL Datenbankanfrage wird ein Spaltenname verwendet, der in der Tabelle nicht existiert. Ursachen könnten eine unvollständige Installation eines Addons sein, oder ein Addon ist für eine ältere bzw. neuere Version des VMS geschrieben.
1136
Diese Meldung wird häufig durch INSERT INTO Anweisungen während der Installation eines Addons ausgelöst, welches auf einer älteren Version des VMS basiert. Ursache ist das Fehlen der Spaltennamen, es werden nur die einzutragenden Werte aufgelistet:
INSERT INTO `tabelle` VALUES ( .... );
Die bessere Variante hat zuerst eine Auflistung der Spaltennamen, und dann die Auflistung der Werte:
INSERT INTO `tabelle` ( .... ) VALUES ( .... );
1267
Man sollte für alle Textfelder in einer Datenbank die selbe Sortierreihenfollge einstellen.