Auf SET NAMES UTF8 verzichten?

MySQL, PostgreSQL, SQLite
exception
Posts: 8
Joined: 2004-08-17 13:31

Auf SET NAMES UTF8 verzichten?

Post by exception » 2007-01-01 23:08

Hallo,

meine Datenbank speichert Daten intern als UTF-8. Auch die darauf zugreifenden PHP-Script arbeiten alle mit UTF-8, um jetzt von der Datenbank Ergebnisse als UTF-8 zu erhalten, führe ich nach Verbindungsaufbau folgende Query durch:

Code: Select all

SET NAMES UTF8;
Es funktioniert alles einwandfrei, aus folgendem Grund würde ich aber gerne auf SET NAMES UTF8 verzichten:

Die Datenbankserver laufen als Master-Slave-Setup, die Anweisung SET NAMES UTF8 muss also auf jeden Slave repliziert werden. Ich vermute, dass dadurch unnötig Netzwerklast, Festplattenaktivität und CPU-Zeit verschenkt wird. Gibt es einen Weg diese MySQL-Anweisung einzusparen?

Folgendes habe ich bereits erfolglos versucht:

my.cnf angepasst:

Code: Select all

[client] 
character_set = utf8 
default-character-set = utf8 

[mysqld] 
character-set-server = utf8 
default-character-set = utf8 
collation-server = utf8_general_ci 

[mysql] 
character-sets-dir = utf8 
default-character-set = utf8 
Leider zeigt SHOW VARIABLES weiterhin an:

Code: Select all

character_set_client = latin1
character_set_connection = latin1
character_set_results = latin1
Ich verwende MySQL 4.1 und PHP 5.2

Hat jemand noch Ideen, wie man ohne SET NAMES UTF8 eine UTF8 Verbindung erzwingen kann?

r. u. serious
Posts: 88
Joined: 2006-06-10 14:17

Re: Auf SET NAMES UTF8 verzichten?

Post by r. u. serious » 2007-01-02 16:10


golloza
Posts: 23
Joined: 2005-01-03 17:27

Re: Auf SET NAMES UTF8 verzichten?

Post by golloza » 2007-01-05 15:30

SET NAMES betrifft nur die aktuelle Connection und ändert nichts an den Daten, warum sollte das repliziert werden?