web-dev-qa-db-fra.com

Le jeu de caractères 'utf-8' n'est pas un jeu de caractères compilé et n'est pas spécifié dans le fichier '/usr/share/mysql/charsets/Index.xml'

Nous essayons de mettre à jour notre logiciel MediaWiki. Selon Manuel: Mise à nivea -> UPGRADE -> Manuel: Backing_up_a_wiki , nous sommes supposés sauvegarder la base de données avec:

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

Lorsque nous exécutons la commande avec nos paramètres et --default-character-set=utf-8:

$ 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

Vérifier Index.xml apparaît pour indiquer que utf-8 est disponible. UTF-8 est spécifiquement appelé par Manual: $ wgDBTableOptions .

$ 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>
...

Nous avons essayé à la fois UTF-8 et utf-8 comme spécifié par Manual: $ wgDBTableOptions .

J'ai quelques questions. Premièrement, pouvons-nous omettre --default-character-set car il ne fonctionne pas comme prévu? Deuxièmement, si nous devons utiliser --default-character-set, alors qu'est-ce qui sert à spécifier UTF-8?


Une troisième question connexe est la suivante: pouvons-nous renoncer à mysqldump en mettant le wiki et la base de données hors ligne, puis en faisant une copie physique de la base de données? Je suis heureux de faire une copie de la base de données physique pour une restauration; et je ne me soucie vraiment pas beaucoup d'utiliser des outils qui causent plus de problèmes qu'ils n'en résolvent.

Si le troisième élément est une option viable, quel est le fichier de base de données physique qui doit être copié?

4
jww

Premièrement, pouvons-nous omettre --default-character-set car il ne fonctionne pas comme prévu?

Nous avons pris la première option et la mise à niveau s'est poursuivie. Votre kilométrage peut varier.

0
jww

J'ai eu le même problème:

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

J'ai édité le mysqld.cnf et changé

character-set-server = UTF8

à

character-set-server = utf8mb4
2
t1mothy

Dans mon cas, c'était la même commande mais je n'avais pas besoin de changer le fichier conf, et la commande --default-character-set fonctionnait bien. C'est un bogue avec MySQL, remplacez simplement "utf-8" par "utf8" ou même "utf8mb4" pour MySQL.

2
Juan Felipe