Zeichensatzproblem nach Umzug Debian=>Gentoo

FreeBSD, Gentoo, openSUSE, CentOS, Ubuntu, Debian
aubergine
Posts: 471
Joined: 2005-09-10 17:52
Location: Frankfurt am Main
 

Zeichensatzproblem nach Umzug Debian=>Gentoo

Post by aubergine »

Hallo,

ich habe gestern einen vorherigen Debian Server auf Gentoo neuinstalliert.

Im Debian System liefen die Dienste wie folgt:
PHP5 aus apt
Perl aus apt
lighttpd selbst compiled
mysql intel gcc compiled Version selbst installiert

Nun im Gentoo folgender Maßen:
PHP5 aus portage
Perl aus portage
lighttpd aus portage
mysql (selbe Version wie Debian 1zu1 kopiert)


Seit diesem Umzug von exakt dem selben Perl/PHP Code auf das Gentoo System gibt es massive Zeichensatzprobleme. Zum einen erscheinen die Umlaute einer Seite nicht mehr richtig http://www.team-ultimate.eu

Zum anderen stürzt ein Perl Daemon, der gewisse Ereignisse auf einem Gameserver in eine DB schreibt, bei Query mit Sonderzeichen ab:

Code: Select all

DBD::mysql::st execute failed: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=' at .//HLstats.plib line 108.
Unable to execute query:

                        SELECT
                                playerId
                        FROM
                                hlstats_PlayerNames
                        WHERE
                                playerId='60076'
                                AND name='Ú©Ä
inâ à¹ÛÛ£Ace|Sou|p|umber'

Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='

All diese Probleme ware auf Debian Etch nicht vorhanden. Ich schätze mal es liegt daran dass vorher alle Client Programme (PHP, Perl) über den Debian Etch mysqlclient15off liefen bzw. gegen diesen compiled waren. Da sowohl PHP und Perl aus der jeweiligen Distribution kommen und kamen würde dies auch passen. Habt ihr eine Idee was man machen kann?
User avatar
Joe User
Project Manager
Project Manager
Posts: 11186
Joined: 2003-02-27 01:00
Location: Hamburg
 

Re: Zeichensatzproblem nach Umzug Debian=>Gentoo

Post by Joe User »

Code: Select all

emerge --info
emerge -pv php perl mysql
Alle per Portage verfügbaren Pakete solltest Du unter Gentoo nicht selbst kompilieren, da oft die Gentoo-spezifischen Patche zwingend benötigt werden.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53
 

Re: Zeichensatzproblem nach Umzug Debian=>Gentoo

Post by Roger Wilco »

aubergine wrote:

Code: Select all

Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
Da steht eigentlich alles, was du wissen musst. Dein Perl-Skript verwendet einen Zeichensatz, den die MySQL-Datenbank entweder nicht unterstützt (in diesem Fall nicht) bzw. nicht per default nutzt (hier der Fall).

Bei Gentoo wird für MySQL standardmäßig UTF-8 als Verbindungszeichensatz und als Zeichensatz für die Tabellen genutzt. Gegen die MySQL-Clientbibliotheken mit diesem Default sind dann eben auch die Libraries und Erweiterungen von PHP, Perl usw. gelinkt. Das lässt sich mit dem USE-Flag latin1 bei Gentoo ändern. Besser wäre es aber, das Skript zu fixen und den MySQL-Server von Gentoo zu nutzen.

Code: Select all

$ euses latin1
dev-db/mysql:latin1 - Use LATIN1 encoding instead of UTF8
aubergine
Posts: 471
Joined: 2005-09-10 17:52
Location: Frankfurt am Main
 

Re: Zeichensatzproblem nach Umzug Debian=>Gentoo

Post by aubergine »

Ich habe nun auch MySQL aus Portage installiert und die Datenbanken kopiert, jedoch ohne Änderung am Problem.
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53
 

Re: Zeichensatzproblem nach Umzug Debian=>Gentoo

Post by Roger Wilco »

Hast du die Tabellen einfach nur kopiert oder auch den Zeichensatz korrigiert?
aubergine
Posts: 471
Joined: 2005-09-10 17:52
Location: Frankfurt am Main
 

Re: Zeichensatzproblem nach Umzug Debian=>Gentoo

Post by aubergine »

Roger Wilco wrote:Hast du die Tabellen einfach nur kopiert oder auch den Zeichensatz korrigiert?
Ich habe folgendes ausgeführt:

Code: Select all

euses latin1
emerge mysql php perl
Danach das Datadir 1zu1 kopiert. Jetzt laufen sämtliche Serverprogramme und Clients aus Portage jedoch keine Veränderung. Meinst du ich soll nochmal versuchen die Datenbanken zu exportieren und zu importieren?
User avatar
Joe User
Project Manager
Project Manager
Posts: 11186
Joined: 2003-02-27 01:00
Location: Hamburg
 

Re: Zeichensatzproblem nach Umzug Debian=>Gentoo

Post by Joe User »

aubergine wrote:Danach das Datadir 1zu1 kopiert.
Autsch! Das kann man nur bei gleichen MySQL-Versionen machen, andernfalls kann es zu bösen Fehlern kommen...
aubergine wrote:Meinst du ich soll nochmal versuchen die Datenbanken zu exportieren und zu importieren?
Ja, per mysqldump auf dem alten System exportieren und auf dem neuen importieren. Und achte auf die korrekten Optionen für mysqldump...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
aubergine
Posts: 471
Joined: 2005-09-10 17:52
Location: Frankfurt am Main
 

Re: Zeichensatzproblem nach Umzug Debian=>Gentoo

Post by aubergine »

Also ich habe einen dump vom alten Debian System. Dieser ist in utf8.
Wie kann ich diesen so importieren dass am Ende eine latin1_swedish_ci Datenbank und Tabellen heraus kommen?

Natürlich so dass immer sauber decodiert und codiert wird. Letztendlich ist es mittlerweile so, dass z.B. in phpmyadmin alle Umlaute richtig angezeigt werden, selbst wenn der utf8 dump 1zu1 importiert wird. Die Webapplikation selbst scheint aber kein utf8 zu können und zeigt die Umlaute nicht richtig an, daher auch die Fragestellung oben.

PS: Ich hab ja Backups und wichtig ist das System auch nicht wirklich sonst wäre eine 3 Tages Reparatur etwas lange :)
User avatar
Joe User
Project Manager
Project Manager
Posts: 11186
Joined: 2003-02-27 01:00
Location: Hamburg
 

Re: Zeichensatzproblem nach Umzug Debian=>Gentoo

Post by Joe User »

Am Einfachsten ist es, wenn Du den Dump gleich in latin1 anlegst:

Code: Select all

mysqldump --opt --default-character-set=latin1 --databases db1 db2 db3
Am Besten wäre es jedoch, bei UTF8 zu bleiben (utf8 USE-Flag) und die WebApp entsrechend zu fixen.
Erzeugt die WebApp überhaupt korrekte HTTP-Header und/oder META-Tags?
Hatte Debians Apache bei Dir den bösen AddDefaultCharset gesetzt und worauf?
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.