Ergebnis 1 bis 5 von 5

Thema: Migration MySQL 4.0 zu MySQL 5.0: Sie wurden aus folgendem Grund gesperrt

  1. #1
    Neuer Benutzer
    Registriert seit
    06.05.2008
    Beiträge
    11

    Frage Migration MySQL 4.0 zu MySQL 5.0: Sie wurden aus folgendem Grund gesperrt

    Hi,

    IST-Zustand

    wir betreiben ein vBulletin Version 3.6.7 (Deutsch) auf dem Server aaa, wobei die Datenbank auf einem zweiten Server liegt, Namens bbb.

    Auf bbb läuft MySQL in Version 4.0.27, die Webseiten verwenden ISO-8859-1 als Zeichensatz und in der Datenbank ist auch alles ISO-8859-1 bzw. latin1.

    SOLL-Zustand

    Die Datenbank soll vom externen Server bbb runter und stattdessen auf aaa (wo auch der Webserver läuft). MySQL auf aaa ist Version 5.0.54.

    Problem
    Nach der Migration sagt vBulletin:

    Sie wurden aus folgendem Grund gesperrt:
    Es wurde keine Begründung angegeben.

    Ende der Sperre:
    Wegen des falschen Encodings könnte man denken, dass es etwas mit dem Zeichensatz zu tun hat.

    Vorgehensweise

    Auf aaa in der Konsole:

    Code:
    mysqldump --opt -a --compatible=mysql40 -h bbb DBNAME > DBNAME.sql
    Das erstellt mir DBNAME.sql mit dem Dump der vBulletin-Tabelle vom MySQL-Server, der auf bbb läuft.



    Code:
    perl -pi -e 's/^\) TYPE=MyISAM;/) TYPE=MyISAM DEFAULT CHARSET=latin1;/' < DBNAME.sql > DBNAME_latin1.sql
    Dies ersetzt mir im SQL-Dump

    Code:
    CREATE TABLE `foo` (
    [..]
    ) TYPE=MyISAM;
    durch

    Code:
    CREATE TABLE `foo` (
    [..]
    ) TYPE=MyISAM DEFAULT CHARSET=latin1;
    (Nur zur Sicherheit)



    Anschließend

    Code:
    mysql -e 'DROP DATABASE IF EXISTS DBNAME'
    mysql -e 'CREATE DATABASE DBNAME CHARACTER SET latin1'
    mysql DBNAME < DBNAME_latin1.sql
    Dies legt die Datenbank für vBulletin im latin1-Format an und importiert den modifizierten SQL-Dump.

    Wenn ich mit auf der Konsole den SQL-Dump anschaue, dann sieht man ganz deutlich, daß die Sonderzeichen dort wirklich nicht UTF8-kodiert sind - die Daten im latin1-Format also zur Tabellendefinition und Datenbankdefinition im latin1-Format passen.

    Nun noch die includes/config.php anpassen (bbb wird zu localhost) und das Forum sollte ohne Probleme mit der lokalen Datenbank laufen.

    Dennoch sieht man nach Aufruf des Forums nicht die Forenübersicht sondern die oben bereits erwähnte Fehlermeldung.

    Es hilft auch nichts, anstatt der DBNAME_latin1.sql die DBNAME.sql zu importieren oder beim mysqldump extra noch den Parameter --default-character-set=latin1 anzugeben - alles das gleiche Ergebnis.


    Schalte ich den Debug-Modus an, bekomme ich folgende Informationen:

    Hooks Called:

    • init_startup
    • style_fetch
    • cache_templates
    • global_start
    • parse_templates
    • error_nopermission
    • error_fetch
    • error_generic


    Die DEBUG-Ausgabe der SQL-Queries fordert folgendes zu Tage (Auszüge):

    Code:
    SELECT calendarpermission.usergroupid, calendarpermission.calendarpermissions,calendar.calendarid,calendar.title, displayorder
    FROM vb3_calendar AS calendar
    LEFT JOIN vb3_calendarpermission AS calendarpermission ON (calendarpermission.calendarid=calendar.calendarid AND usergroupid IN(1))
    ORDER BY displayorder ASC
    Beim Explain der Query steht im Extra-Feld für die Tabelle calendarpermission der Hinweis const row not found.

    (...)

    Code:
    SELECT title, template
    FROM vb3_template
    WHERE templateid IN (405,133,134,135,136,137,138,139,141,142,143,144,145,140,412,409,383,241,207,208,378,381,390,227,228,229,230,341,395,394,396,399)
    Anschließend direkt ein Query, was mit Bans zu tun hat:

    Code:
    SELECT reason, liftdate
    FROM vb3_userban
    WHERE userid = 0
    Beim Explain der Query steht im Extra-Feld der Hinweis Impossible WHERE noticed after reading const tables.

    Danach folgen

    Code:
    SELECT text, languageid, special
    FROM vb3_phrase AS phrase
    LEFT JOIN vb3_phrasetype USING (fieldname)
    WHERE phrase.fieldname = 'error'
        AND varname = 'no_reason_specified' AND languageid IN (-1, 0, 1)
    
    SELECT text, languageid, special
    FROM vb3_phrase AS phrase
    LEFT JOIN vb3_phrasetype USING (fieldname)
    WHERE phrase.fieldname = 'error'
        AND varname = 'nopermission_banned' AND languageid IN (-1, 0, 1)
    
    UPDATE vb3_session
    SET lastactivity = 1212151037, location = '/?explain=1'
    WHERE sessionhash = 'xxxxx'
    Hat jemand eine Idee, was das Problem sein könnte? Muss nach der Migration von MySQL 4.0 auf 5.0 vBulletin irgendwo mitgeteilt werden, dass nun Version 5.0 zum Einsatz kommt? Müssen irgendwelche Tabellen geleert werden?

    Cookies leeren hat nichts gebracht.

    Gruß,
    Marcel.

  2. #2
    vBulletin-Germany Team Avatar von Mystics
    Registriert seit
    01.11.2001
    Alter
    30
    Beiträge
    27.236
    Lade die Datei tools.php aus dem do_not_upload Verzeichnis deines vBulletin-Pakets in dein admincp-Verzeichnis auf den Server und rufe die Datei im Browser auf.

    Führe dann alle Punkte unter Datastore-Cache aus.

  3. #3
    Neuer Benutzer
    Registriert seit
    06.05.2008
    Beiträge
    11
    Vielen Dank für die Info.

    Das behebt das Problem mit der Fehlermeldung und ich sehe nun die Foren-Übersicht.

    --

    Allerdings sind die Umlaute der Foren-/ Threadtitel auf der Webseite nun UTF8-kodiert (und damit in der Anzeige kaputt).

    Die Beiträge der User selber sind ok, da passen die Umlaute.

    In der Datenbank stehen die Foren- und Threadtitel latin1-kodiert, also scheint irgendwo eine Umwandlung zu UTF8 zu erfolgen.


    Hat vielleicht noch jemand einen Tipp?
    Geändert von softjury (30.05.2008 um 16:24 Uhr)

  4. #4
    vBulletin-Germany Team Avatar von Mystics
    Registriert seit
    01.11.2001
    Alter
    30
    Beiträge
    27.236
    Und die Beiträge stehen in der Datenbank auch auf latin1?

    Sind die Thementitel innerhalb des Themas korrekt? Falls ja, sind wohl nur die Informationen in "Letztes Thema" und die Foren-Titel falsch?

    Wenn du ein neues Thema mit Umlauten erstellst, passt damit dann alles?

    Siehst du mit phpMyAdmin die Umlaute in den Tabellen forum, thread und post?

  5. #5
    Neuer Benutzer
    Registriert seit
    06.05.2008
    Beiträge
    11
    Ich wollte diesbzgl. nur Rückmeldung geben:

    Die Umstellung der Datenbank auf UTF-8 sowie die Konvertierung der Sprachdateien zu UTF-8 brachte dann das gewünschte Ergebnis - nun funktioniert alles.

    Gruß,
    Marcel.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. mysqldateien im datenordner gelöscht
    Von Kai77 im Forum MySQL
    Antworten: 3
    Letzter Beitrag: 13.07.2006, 23:20
  2. Was geht hier ab.SQL Bitte um Hilfe
    Von cmssys im Forum MySQL
    Antworten: 0
    Letzter Beitrag: 13.03.2006, 12:06
  3. Antworten: 5
    Letzter Beitrag: 10.09.2005, 22:55
  4. Performanceprobleme durch vB E-Mailfunktion
    Von daFish im Forum Server konfigurieren
    Antworten: 6
    Letzter Beitrag: 28.10.2003, 18:53

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •