Haftpflicht Blogger
Virtual Server von Host Europe

phpMyAdmin – UTF-8 Importproblem

| 2. März 2010 | 2 Kommentare

UTF8 phpmyadmin globale Variable
Das Problem, dass die deutschen Umlaute nicht richtig dargestellt werden,  tritt immer wieder auf. Je nach Ursache sind andere Lösungsansätze erforderlich.

Im folgenden Artikel werde ich beschreiben, was zu tun ist, wenn man die Daten aus einer Datenbank exportiert und in eine andere Datenbank importiert und hierbei auf UTF-8 Darstellungsprobleme mit deutschen Umlauten stößt.

Ausgangssituation:

  • Verschiedene Server: MySQL Tabellendaten sollen von einem Server auf einen anderen Server transportiert werden.
  • Kein MySQL Dump erlaubt: Es soll und darf nicht die ganze Datenbank exportiert werden, d.h. kein MySQL-Dump
  • Verschiedene phpMyAdmin Versionen: phpMyAdmin ist auf beiden Servern installiert, aber in verschiedenen Versionen (Version 3.2 und Version 2.1). Die installierte Version 2.1 soll so bleiben, darf nicht geupgraded werden.

Problem:

Obwohl die Daten mit UTF-8 exportiert werden und auch die phpMyAdmin Version 2.1 schon ein UTF-8 Import vorsieht, werden die Datensätze als Latin-1 Daten in die Datenbank geschrieben, d.h. die Umlaute sind verstümmelt

Lösung 1:

In der Datei  /etc/mysql/my.cnf sind die folgenden Zeilen (soweit nicht vorhanden) hinzuzufügen:

[mysqld] init-connect=’SET NAMES utf8′
character-set-server=utf8
collation-server=utf8_general_ci
default-character-set=utf8

[client] default-character-set=utf8

Damit die Änderung wirksam wird, ist der MySQL-Datenbank-Server neu zu starten

/etc/init.d/mysql restart

Danach funktioniert der Import über phpMyAdmin auch für die deutschen Umlaute problemlos.

Lösung 2:

Wer keinen Zugriff auf die Datei my.cnf hat oder diese nicht verändern darf, aber einen MySQL-Befehl auf der Kommandoebene des Servers absetzen darf, kann folgende Importanweisung verwenden:

mysql  -uUser  -pPasswort  –default-character-set=utf8   DatabaseName  < Importdatei.sql

Stichworte: ,

Kategorie: SQL

Kommentare (2)

Trackback-URL | Kommentarfeed

  1. Dominic sagt:

    Bei Lösung 2 kann die Anweisung -uUser, also direkt aneinandergeschrieben, zu Problemen führen, da es oftmals als Fehler angegeben wird. Also am besten -u User -pPasswort. Und vor das „default-character-set=utf8“ am besten zwei „-“ setzen , also „–default-character-set=utf8“. Auch habe ich es schon erlebt, dass „utf8“ nicht als solches registriert wird, und dann „utf-8“ genutzt werden muss. Kann mit der mysql Version zusammenhängen, ich weiss es aber nicht genau.

    Und wenn der mysql Pfad nicht in den (Windows) Umgebungsvariablen hinterlegt ist, muss man noch zur mysql.exe navigieren, also z.B. c:\webserver\mysql\bin, dann kann die mysql.exe (mittels mysql, .exe kann wegelassen werden) zugegriffen werden.

    Sind vielleicht nützliche Ergänzungen.

    mfg, Dominic

  2. charismeki sagt:

    der Aufruf bei df ist – – default-character-set=utf8 –> also 2 bindestriche hintereinander. Ansonsten kommt die Fehlermeldung: -d is not a vaild command

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.