character_set_client Änderung von 4.1 auf 5.0
character_set_client Änderung von 4.1 auf 5.0
am 14.02.2007 23:42:50 von toppless
Hi,
habe ein folgendes Problem:
habe meinen MySQL Server 4.1.22 mit folgenden Werten für den character
set configuriert:
[mysqld]
character_set_server =3D cp1251
character_set_client =3D cp1251
show variables zeigt (wie eigentlich auch erwartet) folgendes:
character_set_client - cp1251
character_set_connection - cp1251
character_set_database - cp1251
character_set_results - cp1251
character_set_server - cp1251
character_set_system - utf8
die selben Einstellungen auf MySQL 5.1.14 (FreeBSD) oder 5.0.22
(Windows XP) resultieren aber in folgenden Variablen:
character_set_client - latin1
character_set_connection - latin1
character_set_database - cp1251
character_set_filesystem - binary
character_set_results - latin1
character_set_server - cp1251
character_set_system - utf8
Kann mir jemand auf die Sprünge helfen, was sich geändert hat? In der
Doku finde ich leider keine Antwort.
Vielen Dank
Re: =?iso-8859-1?q?character set client_Änderung_von_4.1_auf_5.0?
am 15.02.2007 00:22:19 von Axel Schwenke
toppless@googlemail.com wrote:
> Hi,
>
> habe ein folgendes Problem:
> habe meinen MySQL Server 4.1.22 mit folgenden Werten für den character
> set configuriert:
>
> [mysqld]
> character_set_server = cp1251
Das willst du mit ziemlicher Sicherheit nicht.
> character_set_client = cp1251
Das interessiert [mysqld] nicht die Bohne.
> show variables zeigt (wie eigentlich auch erwartet) folgendes:
> character_set_client - cp1251
> character_set_connection - cp1251
> character_set_database - cp1251
> character_set_results - cp1251
> character_set_server - cp1251
> character_set_system - utf8
>
> die selben Einstellungen auf MySQL 5.1.14 (FreeBSD) oder 5.0.22
> (Windows XP) resultieren aber in folgenden Variablen:
> character_set_server - cp1251
> character_set_database - cp1251
> character_set_system - utf8
Die sollen ja wohl so sein.
> character_set_filesystem - binary
Das willst du nicht anders.
> character_set_client - latin1
> character_set_connection - latin1
> character_set_results - latin1
Und die setzt der Client. Die *kannst* du in einer globalen my.cnf
setzen oder vielleicht - besser - in einer lokalen .my.cnf.
Und manchen Anwendungen wird das egal sein, weil sie das Defaults-
File nicht auswerten. Da mußt du dann SET NAMES verwenden.
> Kann mir jemand auf die Sprünge helfen, was sich geändert hat? In der
> Doku finde ich leider keine Antwort.
lesen und verstehen(!)
http://dev.mysql.com/doc/refman/5.0/en/charset-connection.ht ml
XL
Re: =?iso-8859-1?q?character set client_Änderung_von_4.1_auf_5.0?
am 15.02.2007 08:18:40 von toppless
On 15 Feb., 00:22, Axel Schwenke wrote:
> > [mysqld]
> > character_set_server =3D cp1251
>
> Das willst du mit ziemlicher Sicherheit nicht.
>
Warum soll ich das nicht wollen? Ich will halt MySQL alles
defaultmäßig in cp1251 erstellen lassen.
> > character_set_client =3D cp1251
>
> Das interessiert [mysqld] nicht die Bohne.
>
> > show variables zeigt (wie eigentlich auch erwartet) folgendes:
> > character_set_client - cp1251
> > character_set_connection - cp1251
> > character_set_database - cp1251
> > character_set_results - cp1251
> > character_set_server - cp1251
> > character_set_system - utf8
>
> > die selben Einstellungen auf MySQL 5.1.14 (FreeBSD) oder 5.0.22
> > (Windows XP) resultieren aber in folgenden Variablen:
> > character_set_server - cp1251
> > character_set_database - cp1251
> > character_set_system - utf8
>
> Die sollen ja wohl so sein.
>
Das ist auch richtig so, da habe ich kein Problem mit.
> > character_set_filesystem - binary
>
> Das willst du nicht anders.
>
so. :)
> > character_set_client - latin1
> > character_set_connection - latin1
> > character_set_results - latin1
>
> Und die setzt der Client. Die *kannst* du in einer globalen my.cnf
> setzen oder vielleicht - besser - in einer lokalen .my.cnf.
> Und manchen Anwendungen wird das egal sein, weil sie das Defaults-
> File nicht auswerten. Da mußt du dann SET NAMES verwenden.
>
Das Problem ist dass der client in beiden Fällen der selbe ist.
Gleiche Konfiguration von MySQL was Character Set betrifft, aber
anderes Verhalten zwischen 4.1 und 5.0 bzw. 5.1. Woher kommt es? Ich
greife mit php 5.2.1 auf die Datenbank zu.
> > Kann mir jemand auf die Sprünge helfen, was sich geändert hat? In d=
er
> > Doku finde ich leider keine Antwort.
>
> lesen und verstehen(!)http://dev.mysql.com/doc/refman/5.0/en/charset-c onn=
ection.html
Komisch ist nur, dass die Doku für 4.1 und 5.0, 5.1 die selbe ist, die
Datenbank verhält sich aber anders ;)
Danke und Gruß
Re: =?iso-8859-1?q?character set client_Änderung_von_4.1_auf_5.0?
am 15.02.2007 09:16:00 von toppless
habe jetzt noch ein paar sachen ausprobiert. bin dabei auf folgende
sachen gestoßen:
1
character_set_client =3D xxx führt auf 5.1.14 zu folgender warning beim
start vom server:
ignoring option '--character-set-client-handshake' due to invalid
value 'cp1251' dabei ist es egal, was für ein character set ich
angebe, auch latin1 spuckt diese warning aus.
2
[mysql]
default-character-set=3Dcp1251
hat absolut keine wirkung auf den mysql client, was laut doku wohl
anders sein müsste
With the mysql client, it is not necessary to execute SET NAMES every
time you start up if you want to use a character set different from
the default. You can add the--default-character-set option setting to
your mysql statement line, or in your option file. For example, the
following option file setting changes the three character set
variables set to koi8r each time you invoke mysql: