dump importiert, zeichensatz problem

saiki

saiki

Bratwurstgriller
ich habe aus einer suse installation (10.0) meine datenbank gesichert.

dies habe ich mit
Code:
mysqldump -uroot -pmeinpasswort datenbank > /tmp/dump.sql

getan. so weit so gut. danach gentoo installiert.

in die neue mysql wollte ich wieder meine datenbank importieren

Code:
mysql -uroot -pmeinpasswort datenbank < /tmp/dump.sql

import hat auch funktioniert, nur wird mir auf meinen webseiten jetzt sowas angezeigt. Aus Tür wird beispielsweise:

Code:
Tür

soweit zum problem. jetzt zu den dump-infos:

Code:
-- MySQL dump 10.9
--
-- Host: localhost    Database: datenbank
-- ------------------------------------------------------
-- Server version       4.1.13

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

ich habe versucht per phpmyadmin und bash den dump zu importieren. gelang auch immer, aber die umlaute passen einfach nicht. wie kriege ich also meine umlaute wieder und nicht diesen zeichensalat?
 
Weisst du noch, welchen Zeichensatz die alte Datenbank auf dem Suse-System hatte? - Das ist relativ wichtig, weil die neue scheint UTF-8 zu haben.
Wenn ja, kannst du mit iconv den dump.sql konvertieren.
siehe hier: http://weblogger.ch/blog/archives/2006/09/07/passage-a-utf-8/

edit: alternativ fällt mir da grad diese Zeile in deinen dump-infos auf:
Code:
/*!40101 SET NAMES utf8 */;
du könntest mal probieren, die zu entfernen.
 
Zuletzt bearbeitet:
ich hab die alte mysql der suse hier noch in nem chroot laufen, ich könnte also nachschauen, allerdings wie krieg ich auf der konsole den zeichensatz mit "mysql" heraus?
 
Direkt einen Befehl um den momentan verwendeten Zeichensatz anzuzeigen kenne ich nicht, allerdings hab ich da ne Idee:

Code:
show charset;

Zeigt dir alle möglichen Zeichensätze an, die möglich sind. Wenn ich mir die Liste bei mir so anschaue, ist es wohl ziemlich wahrscheinlich, dass es latin1 ist. Ob das wirklich so ist, kannst du ja prüfen, indem du mit

Code:
charset latin1;

den Zeichensatz einfach mal festlegst und dann eine select-abfrage machst.
Werden die Umlaute richtig angezeigt kannst du davon ausgehen dass latin1 dein Kandidat ist. Bei iconv musst du nur darauf achten ob du iso-8859-1 für "normales" latin1 oder evtl. iso-8859-15 für latin1 + Euro-Zeichen verwendest.
 
Hallo
Macht es doch nicht so kompliziert.
Mysql kann das selbst übernehmen.
Schaust du HIER

Gruß Wolfgang
 
also wolfgangs tipp hat mich nur einen kleinen schritt weiter gebracht. da ich von mysql ungefähr so viel ahnung wie von herztransplantationen habe.

ok, soweit, sogut. ich habe in beiden datenbanken folgenden befehl ausgeführt:

Code:
SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';

dabei kam folgendes raus.

quelldatenbank:
Code:
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | latin1                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+

zieldatenbank:
Code:
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       | 
| character_set_connection | utf8                       | 
| character_set_database   | utf8                       | 
| character_set_filesystem | binary                     | 
| character_set_results    | utf8                       | 
| character_set_server     | utf8                       | 
| character_set_system     | utf8                       | 
| character_sets_dir       | /usr/share/mysql/charsets/ | 
+--------------------------+----------------------------+

+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci | 
| collation_database   | utf8_general_ci | 
| collation_server     | utf8_general_ci | 
+----------------------+-----------------+

und da ich wie gesagt nicht wirklich der mysql held bin, wäre eine etwas genauere vorgehensweise nett ;) also wie kriege ich meine alten daten in die neue db, ohne komische darstellungsprobleme? danke für eure geduldige hilfe!

PS: fragt mich nicht wieso das in der quelldb auf schwedisch gestellt war/ist. fragt suse...
 
Zuletzt bearbeitet:
Also ich tendiere immernoch zu der Lösung mit dem iconv. (siehe weiter oben.)
Was mir noch eingefallen ist: du könntest dir mit mysqldump nochmal einen neuen dump ziehen, allerdings mit dem Parameter --set-charset.

Das mit dem schwedisch ist übrigens standardmässig so von MySQL her wenn ich mich irre.
 
also, ich habs jetzt hinbekommen. ich habe einfach aus der alten db das zeugs mit latin1 exportiert. dann habe ich einfach das dump genommen und bei "SET NAMES" UTF8 geschrieben. dann einfach in die neue mysql importiert. dann gings. danke für eure geduld :)
 

Ähnliche Themen

JBidWatcher: Problem bei loading Auctions in Verbindung mit mySQL

MySQL phpmyadmin will nicht! Socket Fehler!

Mysql connect Problem

Zurück
Oben