Not logged in. · Lost password · Register
Forum: Support General support RSS
Database check mit diversen Fehlermeldungen
Fuchur #1
Member since Jan 2005 · 19 posts
Group memberships: Members
Show profile · Link to this post
Subject: Database check mit diversen Fehlermeldungen
Hallo,
ich habe da ein kleines Problem, denke aber, dass es ziemlich leicht zu lösen ist.
Wenn ich nämlich die "Datenbank prüfen" - Option durchführe, gibt das Board mir folgende Fehlermeldungen aus:

Running entire database check...
UserForumFlags for user 20 and thread 8 has an invalid thread reference to 8
UserForumFlags for user 62 and thread 8 has an invalid thread reference to 8
UserForumFlags for user 36 and thread 61 has an invalid thread reference to 61
UserForumFlags for user 36 and thread 62 has an invalid thread reference to 62
UserForumFlags for user 36 and thread 57 has an invalid thread reference to 57
UserForumFlags for user 46 and thread 62 has an invalid thread reference to 62
UserForumFlags for user 46 and thread 63 has an invalid thread reference to 63
UserForumFlags for user 46 and thread 64 has an invalid thread reference to 64
UserForumFlags for user 46 and thread 65 has an invalid thread reference to 65
Check finished.

Wie kommt sowas zustande?
Hat es was damit zu tun, dass ich viele Umstrukturierungen der einzelnen Foren durchführe, sodass diverse Verknüpfungen nicht mehr so hinhauen?

Ich will diese Fehler alle lösen, aber wie?
Ich hoffe, Du kannst mir bestimmt erneut helfen... ;-)


Desweiteren habe ich noch eine Frage?
Ist es irgendwie möglich, Threads nach eigenen Wünschen anzuordnen oder zu sortieren? (wahrscheinlich nur manuell in der MySQL-Datenbank, oder?!?!?!


Danke im Voraus!!!
Avatar
Yves (Administrator) #2
User title: UNB developer & webmaster
Member since Jan 2004 · 3855 posts · Location: Erlangen, Germany
Group memberships: Administrators, Members
Show profile · Link to this post
Quote by Fuchur:
UserForumFlags for user 20 and thread 8 has an invalid thread reference to 8

Das bedeutet, dass in der Datenbank ein UserForumFlag für einen Thread existiert, das es gar nicht gibt. Das ist nicht schlimm, bis es mal wieder einen Thread 8 gibt, falls das überhaupt passieren kann. Muss mal den Code checken, ob beim Löschen von Threads auch alles korrekt aufgeräumt wird.

Ist es irgendwie möglich, Threads nach eigenen Wünschen anzuordnen oder zu sortieren? (wahrscheinlich nur manuell in der MySQL-Datenbank, oder?!?!?!

Seltsame Grammatik... ;) Ja, im Moment lässt sich das nur fest reinprogrammieren. Die richtige Stelle wäre der order-Parameter vom ListThreads-Aufruf am ende von main.inc.php. Das gilt dann aber global für das gesamte Board und alle Benutzer.
♪ ...nanananah, all in all we’re just brilliant thieves, nanananah... ♪♬
Fuchur #3
Member since Jan 2005 · 19 posts
Group memberships: Members
Show profile · Link to this post
Danke für Deine Antworten.
Ok, dann weiß ich Bescheid!
Also, ich denke nicht, dass nochmal die selbe ID für ein Thread zugewiesen wird, dass ist das, was ich bis jetzt immer so beobachte.

Ich habe nämlich schon zig mal die mySQL Datenbank durchgeforstet, weil ich diese Fehler bereinigen wollte.
Avatar
Yves (Administrator) #4
User title: UNB developer & webmaster
Member since Jan 2004 · 3855 posts · Location: Erlangen, Germany
Group memberships: Administrators, Members
Show profile · Link to this post
Ne, was hier auf nicht vorhandene Einträge verweist, kannst du in diesem Fall bedenkenlos löschen. Ich werd in Zukunft die Reparaturmethoden in dieser Ansicht ausbauen, hab bislang aber noch nichts dadran gemacht.
♪ ...nanananah, all in all we’re just brilliant thieves, nanananah... ♪♬
Fuchur #5
Member since Jan 2005 · 19 posts
Group memberships: Members
Show profile · Link to this post
Subject: Löschen von Threads o. Posts erzeugt "UserForumFlags"-Fehler in Datenbank
Grüße Euch alle!

Ich hatte ja vor ein paar Tagen schon mein Problem mit den Fehlern in der Datenbank beschrieben!
Also beim Datenbank-Check kamen folgende Fehler:

UserForumFlags for user 1 and thread 7 has an invalid thread reference to 7
UserForumFlags for user 1 and thread 15 has an invalid thread reference to 15
UserForumFlags for user 21 and thread 11 has an invalid thread reference to 11
etc.
etc.


Die Vermutung von Yves war, dass anscheinend Einträge aus der Datenbank nicht sauber entfernt werden.
Ich bin der Sache mal auf den Grund gegangen und habe festgestellt, dass es wirklich daran liegt.
Das heißt, diese "UserForumFlags"-Fehler entstehen, wenn ich komplette Threads oder einzelne Posts lösche!
Da wir mittlerweile 100 User auf dem Board haben und ich heute mal wieder Einiges löschen musste,
hat auch dementsprechend die Länge der Fehlerliste im Datenbank-Check zugenommen.
Ich habe jetzt manuell in der MySQL-Datenbank die einzelnen Tabellen durchforstet, ID-Verknüpfungen mit Usern, etc., etc..
Kann diese Resteinträge aber nicht entfernen.
Wo werden diese Fehler ausgelesen, ich will diesen Rest entfernen, ich weiß, dass es keine kritischen Fehler sind,
aber ich möchte einfach einfach eine saubere, fehlerfreie Datenbank haben.

Meine Bitte an Yves: Kannst Du mir vielleicht einen Tipp geben, wo und ob ich diese Fehl-Verknüpfungen löschen, entfernen kann?


ICH WÄRE DIR SOWAS VON DANKBAR!!!
Avatar
Yves (Administrator) #6
User title: UNB developer & webmaster
Member since Jan 2004 · 3855 posts · Location: Erlangen, Germany
Group memberships: Administrators, Members
Show profile · Link to this post
Der DB-Check führt eine vollständige Konsistenz-Prüfung auf die gesamte Datenbank aus. Prinzipiell sollte man das durch Fremdschlüsselbeziehungen und Datenbank-erzwungene Konsistenzregeln realisieren, da MySQL diesbzgl aber leider noch sehr hinter der Entwicklung professioneller Systeme hinterher ist, geht das nunmal nicht und ich muss das selber prüfen. Nur bedeuten diese Fehler in der Regel nichts schlimmes. Dieser spezielle Fehler z.B. sagt lediglich aus, dass ein Flag (UserForumFlag) für einen Benutzer und ein Thema in der Datenbank liegt, das sich auf ein Thema bezieht, das gar nicht existiert. Da die IDs automatisch und streng aufsteigend vergeben werden, kann es zu keiner späteren Wiederbelegung kommen. Und da mangels passendem Thema niemand mehr auf diese verwaisten Zeilen zugreift, liegen die zwar recht nutzlos in der Gegend rum, stören aber niemanden.

Gut, das zur Analyse. Das Problem lässt sich auf zwei Weisen lösen. Die eine ist eine korrekte Implementierung, die ich natürlich im Forum-Code entsprechend korrigieren werde. Darum kann ich mich in der nächsten Zeit mal kümmern, hab nur dieser Wochen nicht sehr viel Freizeit dafür, deshalb kann's etwas dauern. Die andere Methode ist das manuelle Entfernen dieser Zeilen. Die Fehlermeldung erklärt den Sachverhalt imo schon recht präzise. Es gilt jetzt also, die Zeilen aus der Tabelle "UserForumFlags" zu entfernen, deren "Thread"-Spalte den angegebenen ungültigen Wert hat. Das lässt sich mit folgender Abfrage auf der Datenbank erledigen: DELETE FROM [...]UserForumFlags WHERE Thread=[...]. Dabei den Tabellenpräfix und die Thread-ID einsetzen.

Ich hoffe, das hilft dir für's erste weiter.
♪ ...nanananah, all in all we’re just brilliant thieves, nanananah... ♪♬
Fuchur #7
Member since Jan 2005 · 19 posts
Group memberships: Members
Show profile · Link to this post
Ich danke Dir für Deine ausführliche Erklärung, dass macht es für mich schon verständlicher!

Also den Tipp kann ich mehr als gebrauchen, DANKE! ;-)
Bis dieser Bu behoben ist, werd' ich immer alles manuell löschen!!!
Fuchur #8
Member since Jan 2005 · 19 posts
Group memberships: Members
Show profile · Link to this post
OK, ich habe jetzt mal im Abfrageeditor Deinen Befehl ausprobiert, der sagt mir dann aber immer nach der Ausführung foglendes: "Bitte wählen Sie mindestens eine anzuzeigende Spalte".
Was will er genau?
Avatar
Yves (Administrator) #9
User title: UNB developer & webmaster
Member since Jan 2004 · 3855 posts · Location: Erlangen, Germany
Group memberships: Administrators, Members
Show profile · Link to this post
Hast du etwa 10.000 Benutzer die sehr viele neue Themen ignorieren und löscht täglich mehr als 10 dieser Themen oder hast du tatsächlich solche Platzprobleme? Auf die Gesamtperformance haben diese überflüssigen Zeilen jedenfalls keinen Einfluss, da gibt's wesentlich größere Tabellen in dem System. Kannst dir diese Arbeit also eigentlich auch sparen. ;)
♪ ...nanananah, all in all we’re just brilliant thieves, nanananah... ♪♬
Avatar
Yves (Administrator) #10
User title: UNB developer & webmaster
Member since Jan 2004 · 3855 posts · Location: Erlangen, Germany
Group memberships: Administrators, Members
Show profile · Link to this post
Quote by Fuchur:
OK, ich habe jetzt mal im Abfrageeditor Deinen Befehl ausprobiert, der sagt mir dann aber immer nach der Ausführung foglendes: "Bitte wählen Sie mindestens eine anzuzeigende Spalte".
Was will er genau?

DELETE-Abfragen liefern keine Daten zurück. Ich weiß nicht, mit welchem Programm du da auf die Datenbank rennst, aber wenn es DELETE nicht kennt oder fälschlicherweise eine SELECT-Anfrage draus macht, kannst du es gleich wieder zur Seite legen, das wird dir nicht helfen.
♪ ...nanananah, all in all we’re just brilliant thieves, nanananah... ♪♬
Fuchur #11
Member since Jan 2005 · 19 posts
Group memberships: Members
Show profile · Link to this post
Ich benutze phpMyAdmin!
Schade, dann habe ich wohl die Pokarte gezogen!
Trotzdem danke nochmal! ;-)
Avatar
Yves (Administrator) #12
User title: UNB developer & webmaster
Member since Jan 2004 · 3855 posts · Location: Erlangen, Germany
Group memberships: Administrators, Members
Show profile · Link to this post
Ich kenn phpMyAdmin nicht genau, hab es schon sehr lange nicht mehr angeschaut. Aber das muss sowas eigentlich können. Müsstest bei denen mal nachfragen.
♪ ...nanananah, all in all we’re just brilliant thieves, nanananah... ♪♬
Avatar
Yves (Administrator) #13
User title: UNB developer & webmaster
Member since Jan 2004 · 3855 posts · Location: Erlangen, Germany
Group memberships: Administrators, Members
Show profile · Link to this post
Das Problem ist ab Version 1.6 behoben. Habe mehrere Dateien dafür bearbeitet, deshalb gibt's diesmal keinen Patch für frühere Versionen.
♪ ...nanananah, all in all we’re just brilliant thieves, nanananah... ♪♬
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Go to forum
This board is powered by the Unclassified NewsBoard software, 20120620-dev, © 2003-2011 by Yves Goergen
Page created in 222.2 ms (157.3 ms) · 110 database queries in 130.8 ms
Current time: 2013-05-24, 05:42:06 (UTC +02:00)