Konvertierung von 2 nach 3 - schlägt fehl

phpBB 3.0 hat sein "End of Life" erreicht. Eine Neu-Installation wird nicht mehr unterstützt.
Benutzeravatar
HabNurNeFrage
Ehemaliges Teammitglied
Beiträge: 1627
Registriert: 17.01.2010 20:22
Wohnort: An der Ostsee
Kontaktdaten:

Re: Konvertierung von 2 nach 3 - schlägt fehl

Beitrag von HabNurNeFrage »

Hi,

dann versuche mal diese Variation:

Code: Alles auswählen

<?php

$db_host = 'db_hostname'; // Datenbankserver
$db_user = 'db_username'; // Datenbank Benutzer (Name)
$db_pass = 'db_passwort'; // Datenbank Passwort
$db_name = 'db_name'; // Name der Datenbank

$tables = array();
$tables_with_fields = array();

$link_id = mysql_connect($db_host, $db_user, $db_pass) or die('Datenbankverbindung fehlgeschlagen. Zugangsdaten prüfen.');
echo 'Verbunden' ."\n";
mysql_select_db($db_name, $link_id);
echo 'Ausgewählte Datenbank' ."\n";

echo 'Suche Tabellen:' ."\n";
$resource = mysql_query("SHOW TABLES", $link_id);
while ( $result = mysql_fetch_row($resource) ) 
{
    $tables[] = $result[0];
    echo ' - ' . $result[0] ."\n";
}

if ( !empty($tables) ) 
{
    echo 'Starte Konvertierung' ."\n";
    foreach ( (array) $tables as $table ) 
    {
        echo 'Bearbeite Tabelle "' . $table . '"';
        $resource = mysql_query("EXPLAIN $table", $link_id);
        while ( $result = mysql_fetch_assoc($resource) ) 
        {
            if ( preg_match('/(char)|(text)|(enum)|(set)/', $result['Type']) )
                $tables_with_fields[$table][$result['Field']] = $result['Type'] . " " . ( "YES" == $result['Null'] ? "" : "NOT " ) . "NULL " .  ( !is_null($result['Default']) ? "DEFAULT '". $result['Default'] ."'" : "" );
                echo '.';
        }
        echo "\n";
    }

    echo 'Tabellen werden in Binär-Code gewandelt';
    foreach ( (array) $tables as $table ) 
    {
        mysql_query("ALTER TABLE $table CONVERT TO CHARACTER SET binary", $link_id);
        echo '.';
    }
    echo "\n";
    
    // UTF-8 Converter
    echo 'Konvertiere Tabellen nach UTF-8';
    mysql_query("ALTER DATABASE " . $db_name . " CHARACTER SET utf8", $link_id);
    foreach ( (array) $tables as $table ) 
    {
        mysql_query("ALTER TABLE $table CONVERT TO CHARACTER SET utf8", $link_id);
        echo '.';
    }
    echo "\n";
    
    echo 'Erstelle Original-Einträge mit neuem Zeichensatz';
    foreach ( (array) $tables_with_fields as $table => $fields ) 
    {
        foreach ( (array) $fields as $field_type => $field_options ) 
        {
            mysql_query("ALTER TABLE $table MODIFY $field_type $field_options", $link_id);
        }
        echo '.';
    }
    echo "\n";

    echo 'Optimiere Tabellen' . "\n";
    foreach ( (array) $tables as $table )
        mysql_query("OPTIMIZE TABLE $table", $link_id);
    mysql_close($link_id);
    echo 'DONE';
} 
else 
{
    die('Keine Tabellen gefunden. Datenbank leer?');
}

?>
Könnte etwas länger dauern, da hier mehrmals gewandelt wird. (latin nach binär => binär latin nach binär utf-8 => binär utf-8 nach utf-8)
Die erse Version hat direkt latin Zeichen nach utf-8 Zeichen gewandelt.

LG

PS: Das Script habe ich hier gefunden und übersetzt.
| HomeStory.org - the friendly Community | Forum für alle Lebenslagen | <"}))}~ | Nicht nachmachen: Meine phpBB Spielereien |
var shoppen = geld.replace (/geld/g, 'bloedsinn'); if (geld < 1) { return home; };
maiurb
Mitglied
Beiträge: 108
Registriert: 19.07.2004 08:18

Re: Konvertierung von 2 nach 3 - schlägt fehl

Beitrag von maiurb »

LG

PS: Das Script habe ich hier gefunden und übersetzt.
Hi, vielen Dank erst mal. Ich werde es ausprobieren.
Mein altes 2.er Board läuft ja sauber mit Latina1. Warum kann man das neue Board nicht auch so laufen lassen?

VG Maik
Benutzeravatar
Crizzo
Administrator
Administrator
Beiträge: 12113
Registriert: 19.05.2005 21:45
Kontaktdaten:

Re: Konvertierung von 2 nach 3 - schlägt fehl

Beitrag von Crizzo »

Es geht nicht. UTF8 ist Stand der Technik. Finde dich damit ab.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Konvertierung von 2 nach 3 - schlägt fehl

Beitrag von Miriam »

Hinweis: Setze Latina1 = latin1
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
maiurb
Mitglied
Beiträge: 108
Registriert: 19.07.2004 08:18

Re: Konvertierung von 2 nach 3 - schlägt fehl

Beitrag von maiurb »

Hi, leider hat auch dieses Script bei mir nicht den gewünschten Erfolg gebracht.

VG
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Konvertierung von 2 nach 3 - schlägt fehl

Beitrag von Miriam »

Mache doch einfach mal einen Dump der aktuellen DB und öffne den mit Notenpad++ und wähle dann aus den Menü > konvertiere zu UTF8. Speichere den nunmehr konvertierten Dump ab und spiele ihn mittels MySQLDumper in die neue DB ein.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
maiurb
Mitglied
Beiträge: 108
Registriert: 19.07.2004 08:18

Re: Konvertierung von 2 nach 3 - schlägt fehl

Beitrag von maiurb »

Miriam hat geschrieben:Mache doch einfach mal einen Dump der aktuellen DB und öffne den mit Notenpad++ und wähle dann aus den Menü > konvertiere zu UTF8. Speichere den nunmehr konvertierten Dump ab und spiele ihn mittels MySQLDumper in die neue DB ein.
Leider auch fehlgeschlagen! Im NP++ war schon der richtige Zeichensatz angehakt UTF8 - ohne BOM.
In jedem Table ist "ENGINE=...CHARSET=latin1;" hinterlegt. Müsste da jetzt nicht UTF-8 stehen?

VG
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Konvertierung von 2 nach 3 - schlägt fehl

Beitrag von Miriam »

Ja.
Suche und ersetze es mit Notepad++.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
maiurb
Mitglied
Beiträge: 108
Registriert: 19.07.2004 08:18

Re: Konvertierung von 2 nach 3 - schlägt fehl

Beitrag von maiurb »

Hi, jetzt steht überall CHARSET=utf8, aber es funktioniert leider immer noch nicht!
Habe es jetzt so gelöst, dass ich mit dem Editor alle fehlerhaften Zeichen durch Umlaute Ä,Ö,Ü ersetzt habe.

Ich bräuchte noch 2 Dinge:

1. möchte ich auf meiner Startseite die letzten 5 Kommentare anzeigen lassen. (includiert, Script-last.php?)
2. gibt es die Möglichkeit die einzelnen Foren zusammengeklappt anzeigen zu lassen, ohne die Unterforen zB. http://www.boulderrausch.de/datenbank/index.php?c=9?

VG Maik
Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 8134
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: Konvertierung von 2 nach 3 - schlägt fehl

Beitrag von Kirk »

Hallo
Zu 2.
Wenn du die Unteforen in der Forenübersicht nicht angezeigt bekommen willst, kannst du dies im ACP regeln.
Klicke im ACP/Foren rechts neben den gewünschten Foren auf das grüne Zahnrädchen und stelle bei Unterforen in Legende aufführen auf nein.
Gesperrt

Zurück zu „[3.0.x] Installation, Update und Konvertierung“