NEWS
[gelöst]SQL Adapter nutzt bei MySQL falsche Kollation (Zeichenkodierung)
-
Bei mir hat der Adapter die Tabellen auf meinem MySQL alle richtig angelegt. Jedoch nutzt er hier einen falschen Zeichensatz => Schwedisch:
Vielelicht wird der Create Table Befehl nicht richtig aufgerufen?
Frage: Was sollte denn hier rein? UTF-8 wäre ja gut. Mache mir Gedanken um die Umlaute. Habe es neu angelegt und daher noch keine Messwerte.
-
Wie du siehst hier:
https://github.com/ioBroker/ioBroker.sq … ysql.js#L1
Es wird kein speziellen Zeichensatz definiert, d.h. es wird default genommen und bei dir hast du default als schwedisch.
-
Nope. Habe utf-8 default
Man soll meines wissens nach nur noch tabellen mit zeichensatzdefinition anlegen.
-
Nope. Habe utf-8 default
Man soll meines wissens nach nur noch tabellen mit zeichensatzdefinition anlegen. `
Weisst du wie es geht? -
Hallo
es kann kein generelles Problem sein, denn bei mir hat der Adapter UTF8 angelegt.
Eine Maria DB (MySQL kompatibel) auf einer Syno Nas
-
Nope. Habe utf-8 default
Man soll meines wissens nach nur noch tabellen mit zeichensatzdefinition anlegen.
Weisst du wie es geht?
CREATE TABLE table_name (id INT(11) NOT NULL,
column_name VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,)
Hallo
es kann kein generelles Problem sein,… `
Oder einfach nur glück gehabt. Oder die db hält sich nicht an vorgaben. Laut doku soll man es wohl machen. Ist es nicht da gibt es halt einen undefinierten Zustand. Irgendwas muss das system ja dann verwenden. Das ist dann halt irgendetwas. Kann gut gehen muss aber nicht -
Ich habe provisorisch so gelöst:
https://github.com/ioBroker/ioBroker.sq … ysql.js#L3
Um aber bestehende DB zu konvertieren muss man folgendes aufrufen:
ALTER DATABASE iobroker CHARACTER SET utf8 COLLATE utf8_unicode_ci; USE iobroker; ALTER TABLE sources CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; ALTER TABLE datapoints CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; ALTER TABLE ts_string CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-
Danke. Das sieht gut aus.
@Bluefox:Um aber bestehende DB zu konvertieren muss man folgendes aufrufen:
ALTER DATABASE iobroker CHARACTER SET utf8 COLLATE utf8_unicode_ci; USE iobroker; ALTER TABLE sources CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; ALTER TABLE datapoints CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; ALTER TABLE ts_string CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; ```` `
Ich habe es noch für die Tabelle ts_bool und ts_number der Form halber angepasst:
Der SQL Batch ist also:
ALTER DATABASE iobroker CHARACTER SET utf8 COLLATE utf8_unicode_ci; USE iobroker; ALTER TABLE sources CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; ALTER TABLE datapoints CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; ALTER TABLE ts_string CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; ALTER TABLE ts_bool CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; ALTER TABLE ts_number CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-
> Ich habe es noch für die Tabelle ts_bool und ts_number der Form halber angepasst:
Da gibt es keine Texte. Deswegen es ist egal was für ein Codepage die haben. -
Hatte mich einfach gestört. 8-)