python mit websocket und mysql

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
thomasvanderwal
User
Beiträge: 2
Registriert: Samstag 30. Juli 2022, 10:53

Hallo, ich bin neu hier.
Ich habe ein Schulprojekt. Ein Kollege hat ein unfertiges Programm geschrieben und macht Probleme. Ein Python-Programm startet einen Websocket, damit ich einen Dobot mit einem Web-HMI steuern kann. Es ist auch möglich, Eingabefelder auszufüllen, die in einer SQL-Datenbank gespeichert wird. Nach dem Start des Programms erhalte ich folgende Meldungen wenn ich die datan nach mysql senden will:
connection handler failed
Traceback (most recent call last):
File "/home/pi/.local/lib/python3.9/site-packages/websockets/legacy/server.py", line 232, in handler
await self.ws_handler(self)
File "/home/pi/FTP/files/demo-magician-python-64-master/socket_server.py", line 26, in server
database.save_position(data["position"])
File "/home/pi/FTP/files/demo-magician-python-64-master/database.py", line 9, in save_position
db = mysql.connector.connect(
File "/usr/local/lib/python3.9/dist-packages/mysql/connector/pooling.py", line 287, in connect
return MySQLConnection(*args, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/mysql/connector/connection.py", line 137, in __init__
self.connect(**kwargs)
File "/usr/local/lib/python3.9/dist-packages/mysql/connector/abstracts.py", line 1095, in connect
self._open_connection()
File "/usr/local/lib/python3.9/dist-packages/mysql/connector/connection.py", line 544, in _open_connection
self.set_converter_class(self._converter_class)
File "/usr/local/lib/python3.9/dist-packages/mysql/connector/abstracts.py", line 1271, in set_converter_class
self.converter = convclass(charset_name, self._use_unicode)
File "/usr/local/lib/python3.9/dist-packages/mysql/connector/conversion.py", line 136, in __init__
MySQLConverterBase.__init__(self, charset, use_unicode, str_fallback)
File "/usr/local/lib/python3.9/dist-packages/mysql/connector/conversion.py", line 59, in __init__
self.set_charset(charset)
File "/usr/local/lib/python3.9/dist-packages/mysql/connector/conversion.py", line 73, in set_charset
self.charset_id = CharacterSet.get_charset_info(self.charset)[0]
File "/usr/local/lib/python3.9/dist-packages/mysql/connector/constants.py", line 775, in get_charset_info
info = cls.get_default_collation(charset)
File "/usr/local/lib/python3.9/dist-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

Was passiert hier? Die connection mit den websocket geht gut.
Aber etwas mit der MySql (mariaDB) geht nicht gut. Ich habe versucht my.conf zu verändern aber ohne Glück.
Kann jemand mir helfen?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Bitte den Code zeigen, der die eigentliche Verbindung aufbaut, also database.py. Und da auch die Verbindungsparameter mit angeben, falls die nicht im Quelltext ersichtlich sind.
thomasvanderwal
User
Beiträge: 2
Registriert: Samstag 30. Juli 2022, 10:53

Wenn ich die code von database.py verkleine auch dann habe ich eine falschmeldung:

import mysql.connector

try:
db = mysql.connector.connect(host = "localhost", database = "dobot", user = "dobot", password = "HV8AoxbZ2H44uNgX")


if db.is_connected():
print("Connected to MySQL database.")
#return db
except mysql.connector.Error as e:
print ("Error while connecting to MySQL", e)

Database dobot mit phpmyadmin gemacht mit password : HV8AoxbZ2H44uNgX
pi@raspberrypi:~/FTP/files/demo-magician-python-64-master $ python database.py
Error while connecting to MySQL Character set 'utf8' unsupported
Benutzeravatar
__blackjack__
User
Beiträge: 13117
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Hier scheint jemand das gleiche Problem zu haben: https://www.reddit.com/r/mariadb/commen ... character/
I have noticed, that my script does not work with mysql-connector-python==8.0.30 but does work with 8.0.28.

As a fast temporary fix I have downgraded mysql-connector-python version.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten