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