Hallo allerseits,
nachdem ich Joomla auf 3.5 geupdatet habe, bekam ich die folgende Meldung unter "Erweiterungen>Verwalten>Datenbank":
Die Joomla-Core-Datenbanktabellen wurden bis jetzt noch nicht in UTF-8 Multibyte (utf8mb4) konvertiert.
Daraufhin wollte ich die Datenbank reparieren, doch dann bekomme ich folgende Meldung:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator to inform of the time the error occurred and of anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Nun war ich nicht ganz untätig und habe im Web nach Lösungen gesucht,
eine war die, dass ich unter PHPMyAdmin mittels SQL-Befehl das wohl ändern könne,
doch leider blicke ich da nicht wirklich durch und weiss nicht wirklich, wie ich das
bewerkstelligen soll.
Auch habe ich ein script gefunden, mit dem man das angeblich ändern hätte können,
aber selbst dies angepasst und hochgeladen, versucht aufzurufen, ergab nicht das
gewünschte Ergebnis - angeblich würde die script-datei auf dem server nicht gefunden werden...
< ? php
// UTF8 Konverter
// MySQL Verbindung
$db_server = 'localhost';
$db_user = "root";
$db_password = "root";
mysql_connect($db_server, $db_user, $db_password) or die(mysql_error());
// Liste von Datenbanken, bei denen der Zeichensatz geändert werden soll.
// Wenn das Array leer ist, werden alle Datenbanken konvertiert!
$dblist = array('DBName');
// Datenbanken, die nicht konvertiert werden sollen.
// information_schema und mysql sind System-Datenbanken und sollen nicht konvertiert werden.
$skip_db_list = array('information_schema', 'mysql');
// In diesen Zeichensatz konvertieren:
$charset = "utf8";
// In diese collation konvertieren:
$collation = "utf8_unicode_ci";
// Für Testzwecke: Wenn true, SQL-Abfrage nur ausgeben, nicht ausführen.
$printonly = false;
// Alle Datenbanknamen heraussuchen, falls sie nicht explizit angegeben wurden.
$skip_db_text = '"'.implode('", "', $skip_db_list).'"';
if(count($dblist)&amp;amp;amp;amp;amp;lt;1) {
$sql="SELECT GROUP_CONCAT(`SCHEMA_NAME` SEPARATOR ',') AS FRST FROM `information_schema`.`SCHEMATA` WHERE `SCHEMA_NAME` NOT IN ($skip_db_text)";
$result = mysql_query($sql) or die(mysql_error());
$data = mysql_fetch_assoc ($result);
$dblist=explode(",", $data["FRST"]);
}
// Durch die Datenbanken iterieren
foreach ($dblist as $dbname) {
// SQL-Statement für die Konvertierung
$sql="SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET $charset COLLATE $collation;') as FRST FROM `information_schema`.`TABLES` t WHERE t.`TABLE_SCHEMA` = '$dbname' ORDER BY 1";
$result = mysql_query($sql) or die(mysql_error());
// Durch die Zeilen der Tabelle gehen
while ($row = mysql_fetch_assoc($result)) {
if(true != $printonly) {
mysql_query($row["FRST"]) or die(mysql_error());
echo $row["FRST"]."\r\n";
} else {
echo $row["FRST"]."\r\n";
}
}
}
?>
Alles anzeigen
Habe natürlich die Leerschritte zwischen "<" und "?" und "php" am Anfang des Scripts gelöscht,
die Datei habe ich dann als utf8mb4_converter.php gespeichert und in den Administrator-Ordner
auf dem Web gespeichert, dann entsprechend diese Datei versucht aufzurufen, bekomme ich folgende Meldung:
Webserver oder Datei auf dem Server nicht gefunden.
Dann habe ich MySQLDumper installiert und gedacht, das ich vielleicht darüber die Datenbank reparieren kann,
aber leider bin ich damit auch nicht weiter gekommen...
Wer kann mir da weiterhelfen?
Gruß Stefan