it-swarm.com.de

Der Zeichensatz 'utf-8' ist kein kompilierter Zeichensatz und in der Datei '/usr/share/mysql/charsets/Index.xml' nicht angegeben

Wir versuchen, unsere MediaWiki-Software zu aktualisieren. Laut Manual: Upgrading -> UPGRADE -> Manual: Backing_up_a_wiki sollen wir die Datenbank sichern mit:

mysqldump -h hostname -u userid -p --default-character-set=whatever dbname > backup.sql

Wenn wir den Befehl mit unseren Parametern und --default-character-set=utf-8 ausführen:

$ Sudo mysqldump -h localhost -u XXX -p YYY --default-character-set=utf-8 ZZZ > 
backup.sql
mysqldump: Character set 'utf-8' is not a compiled character set and is not spec
ified in the '/usr/share/mysql/charsets/Index.xml' file

Durch Aktivieren von Index.xml wird angezeigt, dass utf-8 verfügbar ist. UTF-8 wird speziell durch Manual: $ wgDBTableOptions aufgerufen.

$ cat /usr/share/mysql/charsets/Index.xml | grep -B 3 -i 'utf-8'
...
<charset name="utf8">
  <family>Unicode</family>
  <description>UTF-8 Unicode</description>
  <alias>utf-8</alias>
...

Wir haben sowohl UTF-8 als auch utf-8 versucht, wie in Manual: $ wgDBTableOptions angegeben.

Ich habe ein paar Fragen. Erstens können wir --default-character-set weglassen, da es nicht wie erwartet funktioniert? Zweitens, wenn wir --default-character-set verwenden müssen, was wird dann verwendet, um UTF-8 anzugeben?


Eine dritte verwandte Frage lautet: Können wir auf mysqldump insgesamt verzichten, indem wir das Wiki und die Datenbank offline schalten und anschließend eine physische Kopie der Datenbank erstellen? Gerne erstelle ich eine Kopie der physischen Datenbank für eine Wiederherstellung. und mir ist es wirklich egal, Werkzeuge zu verwenden, die mehr Probleme verursachen als lösen.

Wenn das dritte Element eine praktikable Option ist, welche physische Datenbankdatei muss dann kopiert werden?

4
jww

Erstens können wir --default-character-set weglassen, da es nicht wie erwartet funktioniert?

Wir haben die erste Option gewählt und das Upgrade fortgesetzt. Ihr Kilometerstand kann variieren.

0
jww

Ich hatte das gleiche Problem:

ERROR: Unable to start MySQL server:
mysqld: Character set 'UTF-8' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index.xml' file
mysqld: Character set 'UTF-8' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index.xml' file

Ich habe die mysqld.cnf bearbeitet und geändert

character-set-server = UTF8

zu

character-set-server = utf8mb4
2
t1mothy

In meinem Fall war es der gleiche Befehl, aber ich musste die conf-Datei nicht ändern, und der Befehl --default-character-set funktioniert tatsächlich. Es ist ein Fehler mit MySQL, ändern Sie einfach "utf-8" in "utf8" oder sogar "utf8mb4" für MySQL.

2
Juan Felipe