mysqldump epically failed to create utf8 file

yurij

Lt. Commander
Registriert
Jan. 2008
Beiträge
1.046
Habe problem bei mysql db sicherung bei 1und1 mittels mysqldump.

das ist ein shared webspace.

befehl sieht so aus:

mysqldump --default-character-set=utf8 --opt -blahblah.1und1.de -ublahblah -p"blahblah" dbblahblah --result-file=/kunden/homepages/12/blahblahblah/htdocs/exchange/backups/outfileutf8.sql

die db selbst ist durchgehend utf8 auch alle connections usw sind auf utf8 eingestellt.

laut MySQL reference manual soll er mir ein utf8 file raushauen.

im sql dump steht dann folgendes als ob es wirklich mal ein utf8 dump wäre, aber der file ist definitiv kein utf8, als kodierung wird mir westeuropäisch angezeigt, MySQL Administrator spuckt auch rum, dass es kein utf8 file sei, und wenn ich es per override als latin1 importiere, kommt nur müll bei sonderzeichen raus.

mir kommt so vor als ob mysqldump utf8 stream in ein non-unicode asci file schreibt.
Düsseldorf ist dann im file: Düsseldorf

any suggestions?

-- MySQL dump 10.11
--
-- Host: dbblahblah.1und1.de Database: dbblahblah
-- ------------------------------------------------------
-- Server version 5.0.81-log

/*!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 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!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 */;
 
Zuletzt bearbeitet:
Hilft dir jetzt nicht wirklich weiter, aber wenn das Backup (?) nicht unbedingt auf dem Webspace bleiben muss, schau dir mal http://www.mysqldumper.de/ an, das funktioniert meiner Meinung nach sehr komfortabel.
 
edit: mir kam die erleuchtung.

habe sql dump in dreamveawer geladen. es hat es als westeuropäisch kodierten file geöffnet.
habe dann Ctrl-J gedrückt und dort die datei mit erzwungener utf8 kodierung geladen.
und siehe da alles ist richtig.
habe dann dumpfile im dreamveawer gespeichert, und sofort importiert mysql administrator alles richtig.

die erkentniss:
mysqldump exportiert zwar utf8, setzt aber BOM markierung beim file nicht.
das führt dazu dass alle programme den file als non-utf8 asci laden.

dreamveawer setzt beim speichern die richtige BOM und das problem ist erledigt.

mal sehen ob mysqldump optionen für BOM bietet.
 
Zuletzt bearbeitet:
hier eine sehr gute infor-quelle über zeichenkodierungen, files und BOM: http://unicode.org/faq/utf_bom.html

Zitat:
What is a BOM?
A: A byte order mark (BOM) consists of the character code U+FEFF at the beginning of a data stream, where it can be used as a signature defining the byte order and encoding form, primarily of unmarked plaintext files.

sql_dump vergisst diese Signatur wohl, was mit 99% sicherheit dazu führt, dass andere programme welche auf Windows Dateisystemfunktionen aufbauen (wie MySQL Administrator usw.) die datei einfach falsch auslesen.
 
Zuletzt bearbeitet:

Ähnliche Themen

Antworten
4
Aufrufe
1.300
Zurück
Oben