MySQL Server und UTF-8

Aus Laub-Home.de Wiki
Zur Navigation springen Zur Suche springen

Will man das der MySQL Server komplett unter UTF-8 läuft muss man ein paar Konfigurationen am Server vornehmen. Hierzu wird als Erstes die my.cnf angepasst:
/etc/mysql/my.cnf

[mysql]
default-character-set=utf8

[mysqld]
collation_server=utf8_unicode_ci
character_set_server=utf8

dann muss der Server neu gestartet werden:

/etc/init.d/mysql restart

Nun müssen noch eventuell vorhandene Datenbanken und Tabellen in UTF-8 konvertiert werden. Dies kann mittels mysql Client gemacht werden:

mysql -u root -p

Nach dem Einloggen einfach folgenden Befehl eintippen. Hier bitte für jede Datenbank den DB Namen ändern:

ALTER DATABASE `Datenbankname1` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER DATABASE `Datenbankname2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Nun müssen noch vorhandene Tabellen konvertiert werden. Das kann mit dem folgenden Skript getan werden. Einfach herunterladen, die Datenbankcredentials anpassen und via Shell oder Browser starten.

cd /usr/src/
wget http://wiki.laub-home.de/images/9/9a/Utf8-converter.zip
unzip Utf8-converter.zip

dann den oberen Teil des Skirptes editieren:

$DB_HOST = 'localhost'; // Enter your Database Host
$DB_USER = 'username'; // Enter your Database Username
$DB_PASSWORD = 'password'; // Enter your Database Password
$DB_DATABASE = 'database'; // Enter your Database Name

dann das Skript entweder in den Webspace kopieren und vie Browser aufrufen, oder einfach in der Konsole ausführen:

php utf8-converter.php