ich habe ein neues OTRS 4.0.15 auf einem Debian 64bit Jessie installiert und mit den Daten einer produktiven Installation (gleiches OS, gleiche OTRS Version) gefüttert. Es läuft soweit alles. Ziel dabei ist aber, die MariaDB Datenbank von latin1 auf utf8 zu konvertieren. Dazu habe ich folgende URL gefunden:
http://itsm-demo.otrs.com/otrs/public.p ... ItemID=202
Ich habe also zuerst "recode latin1..UTF-8 <otrs_1.sql >otrs-database-utf8.sql" gemacht, was ohne Fehler durch lief. Danach erstellte ich eine neue Datenbank mit "CREATE DATABASE otrs CHARACTER SET utf8;". Jetzt kommt der Schritt, die DB einzulesen. Wenn ich es so eingebe, wie auf der Seite steht, kommt:
ERROR 1115 (42000) at line 25: Unknown character set: 'utf8$'
Wenn ich das $ entferne, schiebt er die DB ohne Fehler in MariaDB:
Leider sind danach in OTRS die Umlaute "kaputt".sed 's/DEFAULT CHARSET=latin1/DEFAULT CHARSET=utf8/' <otrs-database-utf8.sql | mysql -u otrs -pXXXXXXXXXXXXXXXXX otrs
Ich schaue gerade noch in eine info.php, dort finde ich zum Zeichensatz:
Ist das relevant?HTTP_ACCEPT_LANGUAGE de-DE,de;q=0.8,en;q=0.6
Accept-Language de-DE,de;q=0.8,en;q=0.6
default_charset UTF-8 UTF-8
Und in der /etc/mysql/conf.d/mariadb.cnf steht
Hat jemand eine Idee was falsch lief?[client]
# Default is Latin1, if you need UTF-8 set this (also in server section)
default-character-set = utf8
[mysqld]
#
# * Character sets
#
# Default is Latin1, if you need UTF-8 set all this (also in client section)
#
character-set-server = utf8
collation-server = utf8_general_ci
character_set_server = utf8
collation_server = utf8_general_ci
Ich hab grad mal mit vim alle "latin1" in "utf8" umbenannt: "2701 Ersetzungen auf 2701 Zeilen". Jetzt kommt beim einspielen:
Das war wohl nix...root@server:/upload$ mysql -u otrs -pXXXXXXXXXXXXXXXX otrs < otrs-database-utf8.sql
ERROR 1064 (42000) at line 7: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '40[utf8]01 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */' at line 1
root@server:/upload$
Weiterer Versuch: mit "mysqldump -u otrs -pXXXXXXXX otrs >otrs-database.sql" eine aktuelle Version der produktiven DB geholt und auf den anderen Server geschoben. Danach ein
undrecode latin1..UTF-8 <otrs-database.sql >otrs-database-utf8.sql
(mit $ dieses mal)sed 's/DEFAULT CHARSET=latin1/DEFAULT CHARSET=utf8$/' <otrs-database-utf8.sql > otrs-database-utf8-neu.sql
Hat beides geklappt. Danach ein:
und es kommt der bekannte Fehler:mysql -u otrs -pXXXXXXXXXXXXXXXXX otrs < otrs-database-utf8-neu.sql
Code: Select all
ERROR 1115 (42000) at line 25: Unknown character set: 'utf8$'
Weitere Erkenntnis: Die Titel im Ticket, also ganz oben das dick geschriebene nach "Ticket#1006842 — ......" ist kaputt wobei unten in der ersten Mail der Betreff korrekt dargestellt wird. Für mich sieht das so aus, als ob OTRS dort Mist baut. In der DB steht es nämlich korrekt drin. Doch warum wird der gleiche Text einmal korrekt und einmal falsch/kaputt dargestellt?