mysql liefert ein " Can 'T initialize character set utf-8 (Pfad: /usr/share/mysql/charsets/)' Fehler, keine utf8.xml Datei

Ich bin auf dem Weg lernen Sie mehr über mysqli und alle, die spannende Sachen, aber ich blockiert es ziemlich schnell.

Ich habe einen lokalen server auf meiner debian-box. Es ist up to date, hat php und mysql installiert und läuft reibungslos.
Ich war auf der Suche, um zu lernen, ein bisschen mehr auf mysqli und als ich versuchte folgenden code:

<?php

$db = new mysqli('localhost', 'userdb', 'pwuserdb', 'db');

if(!$db->set_charset('utf-8')) {
    printf("Error setting the character set utf-8: %s\n", $db->error);
} else {
    printf("Current character set is: %s\n", $db->character_set_name());
}

print_r($db->get_charset());

?>

War ich, zu meiner überraschung, immer folgende Meldung, beim Besuch der Seite:
Error setting the character set utf-8: Can't initialize character set utf-8 (path: /usr/share/mysql/charsets/) stdClass Object ( [charset] => latin1 [collation] => latin1_swedish_ci [dir] => [min_length] => 1 [max_length] => 1 [number] => 8 [state] => 801 [comment] => cp1252 West European )

Dachte ich mir, dass es logischer ist, da ich nicht einrichten, utf-8 als standard-charset von mysql so Schloss ich mit folgenden Einstellungen in die meine.cnf-Datei:

für [mysqld]

default-character-set=utf8

für [client]

default-character-set=utf8

Ich auch angemeldet mysql von der Kommandozeile aus und lief
ALTER DATABASE db CHARSET=utf8;

Ich auch neu geladen mysql von der Kommandozeile, als auch als apache.
Bei der Suche, wie sich die Dinge in mysql, fast alles richtig aussieht:

mysql> SHOW VARIABLES LIKE 'character_set%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

Aber aufgrund der Tatsache, dass es scheint, wie mysql nicht finden kann die utf8-Datei, ich habe für eine utf8.xml Datei in der /usr/share/mysql/charsets/ Ordner und gibt es nicht.
In der Index.xml - Datei unter diesem Verzeichnis gibt es die Erwähnung von utf8 in der Liste der Zeichensätze, aber ich vermute, dass das problem kommt von der Tatsache, dass die xml-Datei fehlt im Verzeichnis.

Nur für die Informationen, mein system locales sind alle UTF8 (de und pl) und ich kann nicht verstehen, warum die utf8.xml Datei nicht im Verzeichnis, da habe ich noch nicht goofying, um mit diesem Verzeichnis oder dessen Inhalt überhaupt.

Jede Idee/Rat/Empfehlung ist willkommen.

Vielen Dank im Voraus!

Prost!

InformationsquelleAutor Iam Zesh | 2012-07-13
Schreibe einen Kommentar