Script Python - Erreur MySql - Character set 'utf8' unsupported

Bonjour,

Depuis hier, après la mise à jour en version core 2022.7.7, j’ai cette erreur sur l’ensemble de mes scripts Python qui utilise des requêtes sql sur la base ha qui est hébergée par MariaDB (addons standard 2.5.0) et exécuter via Python Scripts Pro (GitHub - AlexxIT/PythonScriptsPro: Advanced version of python scripts for Home Assistant without limits)

Je ne comprends pas vraiment comment il peu y avoir ce type d’erreur, coté charset, et que l’utf8 puisse ne plus être supporté ? Je n’ai rien trouvé sur le web qui semble être en rapport avec mon problème.

Je vous joins un des scripts et l’erreur retournée:

SCRIPT:

# Retourne la taille de la base en Mo.

import mysql.connector

# Connexion à la base et execution de la requette
connexion = mysql.connector.connect(host="core-mariadb", user="xxxxxxxx", password="xxxxxxx", database="homeassistant", charset="utf8")
curseur = connexion.cursor()
curseur.execute("SELECT Round(Sum(data_length + index_length) / 1024 /1024 , 2) 'value' FROM information_schema.tables WHERE table_schema='homeassistant' GROUP BY table_schema")

# Affichage du retour

retour = str (curseur.fetchall())
retour = retour[11:-5] # mise en forme [caractere_début : caractere_fin]
logger.warning("La base de données a une taille de: " + retour + " Mo." )
connexion.close()

ERREUR:

Logger: custom_components.python_script
Source: config_mcp/scripts_python/actif/taille_base.py:6
Integration: Python Scripts Pro (documentation, issues)
First occurred: 15:37:05 (1 occurrences)
Last logged: 15:37:05

Error executing script: Character set 'utf8' unsupported
Traceback (most recent call last):
  File "/config/custom_components/python_script/__init__.py", line 81, in execute_script
    exec(code)
  File "/config/config_mcp/scripts_python/actif/taille_base.py", line 6, in <module>
    connexion = mysql.connector.connect(host="core-mariadb", user="xxxxxxx", password="xxxxx", database="homeassistant", charset="utf8")
  File "/usr/local/lib/python3.10/site-packages/mysql/connector/pooling.py", line 287, in connect
    return MySQLConnection(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/mysql/connector/connection.py", line 137, in __init__
    self.connect(**kwargs)
  File "/usr/local/lib/python3.10/site-packages/mysql/connector/abstracts.py", line 1092, in connect
    self.config(**kwargs)
  File "/usr/local/lib/python3.10/site-packages/mysql/connector/abstracts.py", line 516, in config
    self._charset_id = CharacterSet.get_charset_info(charset, collation)[0]
  File "/usr/local/lib/python3.10/site-packages/mysql/connector/constants.py", line 775, in get_charset_info
    info = cls.get_default_collation(charset)
  File "/usr/local/lib/python3.10/site-packages/mysql/connector/constants.py", line 746, in get_default_collation
    raise ProgrammingError(f"Character set '{charset}' unsupported")
mysql.connector.errors.ProgrammingError: Character set 'utf8' unsupported

Pour information:

  • Hormi les mises à jour core + os je n’ai rien changer dans l’environnement
  • La base est opérationnelle et HA s’y connecte sans problème (même paramètre dans recorder mais avec charset=utf8mb4)
  • Le retour arrière sur la partie Core en 2022.7.6 = pas de changement
  • Le retour arrière en OS 8.3 = pas de changement (cela n’aura étonné d’ailleurs)
  • Le remplacement de charset=« utf8 » par « utf8mb4 » ou rien = pas de changement.

Si l’un d’entre vous a une idée ou une suggestion sur où chercher je le remercie par avance pour le temps passé à me répondre.

Mcp

la première chose que je ferais, ce serait de virer les accents dans le script… des fois que…

Bonjour,
Merci de votre conseil, mais il n’y a pas de caractère accentué dans cette section de code. Le retour d’erreur concernant le début lors de l’utilisation du module MySQL pour la connexion à la base.

Mcp

Pour information:

Problème résolu temporairement en revenant a la version 8.0.29 du module mysql-connector-python car le problème est apparu après suite au passage en version 8.0.30