Page 1 of 1

Schweres Datenbankproblem...

Posted: Wed Oct 17, 2007 6:41 pm
by blues.on
Hallo,

ich habe mal gesucht im Inet, aber nichts als Fachwörter mir anhören müssen....

Mein Problem ist folgendes:

Code: Select all

Query failed:

SELECT 
                    

                    e.id,
                    e.title,
                    e.timestamp,
                    e.comments,
                    e.exflag,
                    e.authorid,
                    e.trackbacks,
                    e.isdraft,
                    e.allow_comments,
                    e.last_modified,

                    a.realname AS author,
                    a.username AS loginname,
                    a.email
                     , e.body, e.extended
                     
                FROM
                    serendipity_entries AS e
                    LEFT JOIN serendipity_authors a
                        ON e.authorid = a.authorid
                    LEFT JOIN serendipity_entrycat ec
                        ON e.id = ec.entryid
                    LEFT JOIN serendipity_category c
                        ON ec.categoryid = c.categoryid
                     LEFT JOIN serendipity_authorgroups AS acl_a
                                   ON acl_a.authorid = 0
                            LEFT JOIN serendipity_access AS acl_acc
                                   ON (    acl_acc.artifact_mode = 'read'
                                       AND acl_acc.artifact_type = 'category'
                                       AND acl_acc.artifact_id   = c.categoryid
                                      )
                    WHERE isdraft = 'false' AND e.timestamp <= 1192639200 AND     (
                                 c.categoryid IS NULL
                                 OR ( acl_acc.groupid = 0)
                                 OR ( acl_acc.artifact_id IS NULL
                                      
                                    )
                               )
                     GROUP BY e.id
            ORDER BY timestamp DESC
                      LIMIT 15

/ Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
Die Collations einfach mit konvertieren auf latin1 zu stellen bringt nichts, da alle Tabellen auf latin1 stehen. Woher nun die Tabelle mit UTF-8 kommt, kann ich mir nicht erklären, oder läuft serendipity generell auf UTF-8?

ich habe leider nicht so oft dir Möglichkeit hier in Ghana mich dem Problem anzunehmen. Leider steht eine große Gemeinde hinter meinem Blog und verfolgt mein Freiwilliges Soziales Jahr darüber. Ich habe vorher glücklicherweise ein Backup gemacht. Es war lediglich das Umstellen der auf der Startseite angezeigten Beiträge von 10 auf 3, was mir diesen fetten Fehler beschert hat.

Kann mir jemand helfen?

Der Blog ist schon mit sehr viel gefüllt und es wäre schade, wenn alles neu gemacht werden müsste, was bedeuten würde... Einige Tage im Inetcafe sitzen...

Ich habe mit dem konvertieren nicht so den Erfolg gehabt und das Backup konnte ich nicht einspielen, weil mir der entsprechende Syntax für das Überschreiben beim Importieren fehlt. Beim Import wird mir lediglich gesagt, das diese Datenbank bereits besteht...

Freue mich sehr auf Hilfe!!!

Kai

Re: Schweres Datenbankproblem...

Posted: Thu Oct 18, 2007 9:51 am
by garvinhicking
Hi Kai!

Geh mal mit phpMyAdmin auf deine Datenbank und prüfe mal auf welcher Kollation folgende Datenbankfelder stehen:

serendipity_access.artifact_mode
serendipity_access.artifact_type

Hast Du in Serendipity den Zeichensatz auf "UTF-8" oder "Native" gestellt? Wenn Du UTF-8 dort nutzt, sollten die Datenbankfeldcollations ebenfalls auf UTF-8 stehen. Du kannst alternativ mal mit dem s9y konfigurationsparameter "DBNames-Befehl nutzen" spielen, ob das hilft.

Scheinbar hast Du beim umstellen der Anzahl auch an der s9y Datenbankkonfiguration wohl etwas geändert, also z.B. diese DBNames- oder Zeichensatz umgestellt.

Die Daten sind noch vorhanden, keine Panik.

Viele Grüße,
Garvin

Posted: Sat Oct 20, 2007 12:40 pm
by blues.on
Danke für die Antwort....

Die beiden Datenbankfelder

serendipity_access.artifact_mode
serendipity_access.artifact_type

haben die Kollation latin1_swedish_ci...

ich habe Serendipity ganz normal installiert und dabei keine Kollation festgelegt. Das war auch meine Frage, in welcher Kollation S9y installiert.

Ich habe mal bei den andern Blogs, die ich betreue und auch installiert habe geschaut und diese haben die Kollation latin1_swedish_ci wie bei mir auch in den Tabellen...

Im Startbereich wird mir aber als Datenbankkollation UTF-8 angezeigt, wie bei den funktionierenden Blogs auch

Code: Select all

MySQL-Zeichensatz:  UTF-8 Unicode (utf8)
Entgegen der Tabellenkollation latin1_swedish_ci

Ich find den Fehler nicht. Habe die beiden Tabellen mal in UTF-8 laufen lassen, aber es geht nicht. Selbst wenn ich im Startbereich die Kollation auf latin1_swedish_ci stelle, klappt es nicht...

Ich denk es liegt an den verschiedenen Kollationen hier

collation_connection utf8_general_ci
collation_database latin1_swedish_ci
collation_server latin1_swedish_ci

[EDIT]
Hab bei den anderen Blogs mal geschaut und diegleiche Ausgabe bekommen, sprich collation_connection ist auch uft8_general_ci

Bloß, wie kann ich die collatio_connection auf latin stellen?

Hier die Screens von meiner Config:

Image

Image

Image

Was kann ich noch machen?

Danke
Kai

Posted: Sat Oct 20, 2007 2:01 pm
by garvinhicking
Hi!

Hast du in der s9y konfiguration dieoption "DB Names Befehl benutzen" aktiviert?

Grüße,
Garvin

Posted: Mon Oct 22, 2007 4:07 pm
by blues.on
garvinhicking wrote:Hi!

Hast du in der s9y konfiguration die option "DB Names Befehl benutzen" aktiviert?

Grüße,
Garvin
nicht das ich wüsste. habe nichts dergleichen verändert...

Hier der screen von einem anderen blog, welcher diegleichen default-settings haben müsste wie meiner, da ich sie lediglich installiert habe.

Image

dort it diese funktion aktiviert und ich sehe auch, das wenn komische Zeichen auftreten, ein deaktivieren helfen kann. Ich kann in die config aber nicht direkt rein...

Wenn ich den Wert von diesem Schlüssel in der Tabelle serendipity_config den Wert von "true" auf "false" änder, tut sich nichts. Oder ist dieser Schlüssel nicht für diese DB-Names-Funktion zuständig?

So steht der Wert in der Tabelle serendipity_config:

Code: Select all

dbNames  	true  	0
Hier die Einstellung in der Datenbank:
Image

Habe ich den richtigen Wert verändert?

Weiterhoin habe ich bei den anderen Blog mal geschaut, welcher Zeichensatz verwendet wird. Dieser ist bei den Blogs UTF-8...

Siehe hier:
Image

Jedoch sind die Tabellen von S9y bei diesen funktionierenden Blogs alle in latin1-Kollation

Woran kann es denn noch liegen....

Danke

Posted: Mon Oct 22, 2007 5:22 pm
by garvinhicking
Hi!
nicht das ich wüsste. habe nichts dergleichen verändert...
Dann schalte es mal ein, wenn's aus ist, oder aus, wenn's derzeit ein ist bei Dir. Das könnte evtl. abhilfe schaffen. ("Datenbank-Zeichensatzkonvertierung")...?
Ich kann in die config aber nicht direkt rein...
Was meinst Du damit?
Wenn ich den Wert von diesem Schlüssel in der Tabelle serendipity_config den Wert von "true" auf "false" änder, tut sich nichts. Oder ist dieser Schlüssel nicht für diese DB-Names-Funktion zuständig?
Nein, das wird über die serendiptiy_config_local.inc.php geregelt. Stell's doch einfach über die normale s9y Konfigurationsoberfläche ein?

Viele Grüße,
Garvin

Posted: Thu Oct 25, 2007 11:32 am
by blues.on
garvinhicking wrote: Nein, das wird über die serendiptiy_config_local.inc.php geregelt. Stell's doch einfach über die normale s9y Konfigurationsoberfläche ein?
Ich komme mit meinem Namen sowie dem passenden Passwort nicht in die S9y-Verwaltungsoberfläche.

Ändern von PW's in der Datenbank bringt auch nichts, da es ja verschlüsselt angegeben wird. Kann ich den Wert wie ich geschrieben habe nicht direkt in der Datenbank ändern? Ich hatte es ja probiert wie geschrieben und es ging nicht. Aber das nun nicht einmal der Login geht ist schon seltsam... Zumal die beiden Benutzer, die ich eingerichtet habe, ja in der Datenbank vorkommen.

Ich hoffe mal nicht das die serendiptiy_config.inc.php schrott ist.

Kai

Posted: Thu Oct 25, 2007 2:33 pm
by garvinhicking
Hi!
Ändern von PW's in der Datenbank bringt auch nichts, da es ja verschlüsselt angegeben wird.
Setz mal ein neues passwort in der serendipity_authors Datenbanktabelle. Das passwort wird dort mittels "MD5()" (kann man in phpmyadmin auswählen) verschlüsselt.
Kann ich den Wert wie ich geschrieben habe nicht direkt in der Datenbank ändern?
Neine, siehe oben: dbNames wird niht aus der DB gelesen sondern aus sserendipity_config_local.inc.php.

Viele Grüße,
Garvin

Posted: Thu Oct 25, 2007 2:48 pm
by blues.on
garvinhicking wrote:Hi!
Ändern von PW's in der Datenbank bringt auch nichts, da es ja verschlüsselt angegeben wird.
Setz mal ein neues passwort in der serendipity_authors Datenbanktabelle. Das passwort wird dort mittels "MD5()" (kann man in phpmyadmin auswählen) verschlüsselt.
Ich habe ein neues PW gesetzt, aber es bringt nichts...

sonst suche ich die 'DBnames' funktion in der config.inc.php

bin grad online in der stadt. kannst mich unter icq 244056133 erreichen...

Ich hab ja wie gesagt n Backup von der noch heilen Datenbank...

Wie kann ich das einspielen, ohne das ich eine Meldung von myphpadmin bekomme, das die Datenbank schon existiert... Ich würde das gern einspielen und sagen, das er das überschreibt, aber den Syntax kenn ich nicht.

Posted: Thu Oct 25, 2007 10:34 pm
by garvinhicking
Hi!

Bion jetzt das WE über weg. Du musst den Befehl in der serendipity_config_local eintragne,nicht in der serendipity_config.

Das mit dem PW muss eigentlich klappen. DB Dump hochzuspielen ist woh das beste. Ob daten überchrieben werden oder nicht muss man bereits im Dump angeben, das kann man nicht beim hochladen bestimmen.Musst da überall "DROP TABLE ..." einfügen für jede Tabelle, oder die tabellen halt vorher manuell löschen.Aber sicherstellen dass du ein backup hast.

Grüße,
Garvin