PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehler nach Datenbankumzug


charokee
02.11.2006, 14:45
Hallo.

Ich wollte heute die Datenbank des vB von einer Datenbank in eine andere kopieren. Also habe habe ich ein Dump der bestehenden Datenbank erstellt und dieses Backup mit Hilfe von mysqldumper in die neue Datenbank eingespielt. Danach ahbe ich die config-Datei eintsprechend angepasst. Dabei habe ich den Namen der Datenbank geändert, Datei gespeichert und neu hochgeladen.

Wenn ich nun das Board aufrufe erscheint folgende Fehlermeldung:
Warnung: array_keys() [function.array-keys (http://www.charokee.de/function.array-keys)]: The first argument should be an array in /includes/functions.php (Zeile 3277)

Warnung: Invalid argument supplied for foreach() in /includes/functions.php (Zeile 3277)

In der Datenbank selber sieht alles korrekt aus, bis auf das Sonderzeichen zestümmelt wurden. Aber das ist ein anderes Thema.

Wo liegt denn da das Problem?
Hat jemand einen Rat für mich wie ich das Problem beheben kann?

Pathor
02.11.2006, 18:36
Benutze mal zum Dump einspielen die aktuelle Alpha V12 (http://www.mysqldumper.de/board/download.php?id=696) von MySQLDumper.
Dann sollten die Umlaute korrekt sein und auch der Fehler dürfte nicht mehr auftauchen.

charokee
03.11.2006, 09:17
Denn die Lösung liegt so nahe ... :rolleyes:

Mit der Vorgängerversion klappte es nicht, darum hatte ich da aufgegeben. Habe dann die Alpha-Version installiert, Backup hochgeladen, Datenbank geleert, Backup eingespielt, und alles sieht wieder prima aus.

Vielen Dank für deine Antwort.
Das war meine Rettung.

Pathor
03.11.2006, 21:29
Hatte glücklicherweise das gleiche Problem, als ich den DB-Dump auf seine Richtigkeit überprüft habe (deswegen konnte ich so gezielt helfen). ;)

Du hättest auch mittels tools.php das Forum zum laufen bringen können.
Die Umlaute dann einfach mittels UPDATE post SET pagetext = REPLACE (pagetext , 'komisches ä','richtiges ä') anpassen. :)

Feechen
09.02.2007, 01:48
Bei mir hat die Alpha-Version nicht geholfen. Bei mir werden alle Umlaute nicht angezeigt, d. h., dass anstelle eines jeden Umlautes ein ? steht.

Du schreibst:

Die Umlaute dann einfach mittels UPDATE post SET pagetext = REPLACE (pagetext , 'komisches ä','richtiges ä') anpassen.

Was genau muss anstelle von 'komisches ä' und 'richtiges ä' stehen??? Überhaupt: Geht das so einfach mit Ersetzen?

Stelle gerade fest, dass ich in der falschen Rubrik poste. Habe Version 3.6.4.

Gruß
Feechen

Mystics
09.02.2007, 11:05
Welche Kollationen sind denn für die Datenbank, Tabellen, Felder, MySQL-Verbindung eingestellt? Diese sollten in der alten und der neuen Datenbank identisch sein. Also vorher latin1 und nun utf8 führt zu diesem Problem.

"komisches ä" wäre wohl das, was in der Datenbank anstelle des "richtigen ä" steht...ich denke aber nicht, die Querys sind so eine gute Idee. Es betrifft ja nicht nur die Beiträge, sondern auch die Privaten Nachrichten, Foren etc.

Feechen
09.02.2007, 13:42
Die Kollationen kann ich wie folgt ersehen:

Datenbank: UTF-8 Unicode (utf8)
Tabellen: latin1_swedish_ci
MySQL-Verbindung: utf8_unicode_ci

Felder: => wo sieht man das??? benutze phpMyAdmin

Gruß
Feechen

Mystics
09.02.2007, 14:14
Einfach die Struktur jeder Tabelle ansehen.

Wie sieht es bei der alten Datenbank aus? Kann der Webhoster für dich alles auf "latin1_swedish_ci" ändern?

Feechen
09.02.2007, 16:20
Ich glaube nicht, dass er das macht :( . Ich kann auf dem alten Webspace auch gar nicht sehen, welcher Zeichensatz das ist.

Würde das nicht funktionieren, wenn man es auf der neuen Datenbank macht? Ich hatte es bei der Datenbank-Verbindung auch einmal auf latin1_swedish_ci gestellt, jedoch hat das nichts verändert.

Gruß
Feechen

Feechen
11.02.2007, 01:51
Das Problem mit dem Zeichensatz, also der Anzeige der Umlaute ist gelöst!

Da mein Webhoster mit ziemlicher Sicherheit die Konfigurationsdatei der Datenbank nicht ändern wird, kam ich auf die Idee, die Webserver/Datenbanksituation auf meinem eigenen PC zu simulieren und so die Konfigurationsdateien nach Belieben zu verändern. So habe ich auf meinem PC schon seit längerem das Programm: EasyPHP (http://www.easyphp.org/?lang=en) in der Version 1.8 installiert und nach den Empfehlungen auf den Anleitungsseiten http://www.canowhoopass.com/guides/easyphp/setupmysql.php angepasst. Dieses Programm simuliert einen Apache-Server sowie eine MySQL-Datenbank, die man mit dem ebenfalls automatisch mit installierten phpMyAdmin verwalten kann. Ich habe dann mit dem auf meinem PC installierten Programm "MySQL DumpTimer 1.6.3" (http://www.richtsoft.com/) ein Backup der Datenbank beim Webhoster direkt in die Datenbank auf meinem PC gemacht. Danach habe ich auf meinem PC in die MySQL-Konfigurationsdatei my.ini folgende Einträge hinzugefügt:

[mysqld]
character-set-server = latin1
default-character-set = latin1
collation_server = latin1_swedish_ci

[mysql]
character-sets-dir=latin1
default-character-set=latin1

Dann MySQL neu starten und wieder mit "MySQL DumpTimer" ein Backup der Datenbank auf dem eigenen PC direkt auf die neue Datenbank anstoßen.

Das wars dann auch schon fast. Jetzt in das Admincenter einloggen, bei Wartung auf "Tabellen reparieren" gehen und alles (außer den Benutzerbildern) wird richtig angezeigt. Alle Umlaute werden richtig dargestellt.

Vielleicht für einige eine etwas umständliche Variante, aber man ist nicht mehr auf den Webhoster angewiesen.

Gruß
Feechen