Thread Mysql Datenbanksicherung mit MySQL::Backup nicht in UTF8 (6 answers)
Opened by Kean at 2014-01-15 11:54

Kean
 2014-01-15 11:54
#172985 #172985
User since
2004-08-18
463 Artikel
BenutzerIn

user image
Ich nutze seit ein paar Jahren das Modul CPAN:MySQL::Backup (heisst lokal DBD::Backup) um MySQL Datenbanken zu sichern.

Dabei verwende ich zum Beispiel folgenden Code:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use DBI;
use DBD::Backup;

my $dsn  = "DBI:mysql:database=$datenbank;host=$db_host;port=$db_port";
my $dbh = DBI::->connect( $dsn, $db_user, $db_pw, { RaiseError => 1, PrintError => 0, AutoCommit => 1, mysql_enable_utf8 => 1 } );

my $mb = new_from_DBH DBD::Backup($dbh,{'USE_REPLACE' => 1, 'SHOW_TABLE_NAMES' => 1});

open (AUSGABE, ">sicherung.sql");

print AUSGABE "DROP TABLE IF EXISTS `Test`;\n";
print AUSGABE $mb->table_desc('Test');
print AUSGABE $mb->table_data('Test');

print AUSGABE "DROP TABLE IF EXISTS `Test2`;\n";
print AUSGABE $mb->table_desc('Test2');
print AUSGABE $mb->table_data('Test2');

close (AUSGABE);


In diesem Beispiel sichere ich die beiden Tabellen "Test" und "Test2" in eine Sicherungsdatei. Das ganze mache ich gewöhnlich mit 2-10 Tabellen.

Seit ein paar Wochen habe ich aber Probleme die so erstellten Sicherungen zurück zu spielen. Bei einigen Tabellen werden Umlaute falsch importiert und bei anderen nicht.

Ich habe als Test mal alle Tabellen einzeln in getrennte Dateien exportiert und dabei ist mir aufgedallen, dass einige Tabellen im Format "ANSI" und andere im Format "UTF8 ohne BOM" gespeichert werden. Die Sicherungen im UTF8 Format kann ich ohne Probleme zurückspielen aber die im ANSI Format nicht, da hier die Umlaute zerstört werden.

Wenn ich mehrere Tabellen in einer Datei sichere, ist die ganze Datei im Format ANSI. Bei den Tabellen, welche einzeln in ANSI raus kommen, sind die Umlaute normal und bei den Tabellen welche einzeln als UTF8 gesichert werden, sind die Umlaute zerstört.

Da alle Tabellen den gleichen Aufbau haben und die gleiche Standart Kollation (utf8_general_ci) frage ich mich wieso manche der Tabellen im ANSI Format gesichert werden und andere in utf8.

Hat vielleicht jemand eine Idee an was das liegen könnte??

Wenn ich eine Sicherung z.b. mit dem Programm HeidiSQL mache, kommt alles in UTF8....

modedit Editiert von GwenDragon: Titel ergänzt
Last edited: 2014-01-15 13:53:16 +0100 (CET)

View full thread Mysql Datenbanksicherung mit MySQL::Backup nicht in UTF8