[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Wie MariaDB Character ändern?



Hallo,

> ich habe ein frisches debian10 und darauf läuft mariadb.
> Ich möchte nun hier utf8 nutzen, aber mir erschließt sich nicht, was
> in die cnf reingehört damit er damit auch startet.
> Ich habe da aktuell eine DB drin die auch noch leer ist und wenn ich
> nun auch befehle absetze, die den Character und collation ändern
> sollen, bestätigt er mir das positiv, aber geändert hat sich trotzdem
> nichts.

Was soll sich geändert haben, wenn die Datenbank noch leer ist?

Was man in die Konfigurationsdatei schreibt, wurde hier ja schon beschrieben.
Wenn du das MariaDB Paket aus Debian verwendest, ist das ohnehin bereits so
gesetzt.

Eine Änderung in der Konfigurationsdatei wirkt sich aber nicht auf bereits
vorhandene Datenbanken aus, sondern legt nur den Default fest, der bei neu
erstellten Datenbanken verwendet wird, wenn der Charset / die Collation
nicht explizit angegeben werden.

Die Einstellung bei der bestehenden Datenbank ändert man mit mit ALTER
DATABASE ... CHARACTER SET ... COLLATE ...
vgl. https://mariadb.com/kb/en/alter-database/

Aber auch hier gilt: Die Einstellung für die Datenbank ist lediglich ein
Defaultwert für neue Tabellen, ändert aber nichts an bereits vorhandenen
Tabellen. Wenn du bereits Tabellen hast, musst auch diese explizit ändern:
ALTER TABLE ... CHARACTER SET ... COLLATE ...
siehe https://mariadb.com/kb/en/alter-table/

Und, wie man sich jetzt denken kann: auch dieser Befehl setzt lediglich
einen Defaultwert, der für neue Felder (Spalten) in der Tabelle verwendet
wird. Er ändert nicht bereits bestehende Felder. Um bestehende Daten zu
konvertieren, kann ALTER TABLE ... CONVERT TO ... (ändert alle Felder) oder
ALTER TABLE ... MODIFY ... (ändert einzelne Felder) verwendet werden.
Beispiele gibt es hier:
https://mariadb.com/kb/en/setting-character-sets-and-collations/

Gruß, Harald


Reply to: