Schrolli91 / BOSWatch

Python Script to process input data from rtl_fm and multimon-NG - multiple Plugin support
https://bwcc.boswatch.de
GNU General Public License v2.0
132 stars 60 forks source link

Debian 10 (DietPi): MySQL-Plugin läuft nicht #525

Closed u918244 closed 2 years ago

u918244 commented 2 years ago

Moin zusammen, ich nerve sehr ungern schon wieder, aber ich habe ein weiteres Problem mit boswatch. Nachdem ich eine Installation unter Debian 11 (DietPi) aufgegeben habe, habe ich jetzt das Debian 10 Image genommen.

Es ist mitinstalliert: lighttpd: lighttpd/1.4.53 (ssl) - a light and fast webserver MariaDB: mysql Ver 15.1 Distrib 10.3.31-MariaDB, for debian-linux-gnueabihf (armv8l) using readline 5.2 boswatch liegt vor als: SW Version: 2.5.2 Branch: master Build Date: 08.01.2021

Bei Nutzung ohne aktivierte Plugins läuft es mittlerweile gut.

Es wurde die benötigte DB eingerichtet und diese ist auch vom Benutzer "boswatch" auf dem localhost erreichbar. Beim Start von boswatch bekomme ich allerdings folgende Fehlermeldung: _25.10.2021 09:29:28 - pluginLoader [DEBUG ] load plugin: MySQL 25.10.2021 09:29:29 - pluginLoader [ERROR ] cannot load plugin: MySQL 25.10.2021 09:29:29 - pluginLoader [DEBUG ] cannot load plugin: MySQL Traceback (most recent call last): File "/opt/boswatch/includes/pluginLoader.py", line 106, in loadPlugin return imp.load_module(plugin["name"], plugin["info"]) File "/opt/boswatch/plugins/MySQL/MySQL.py", line 17, in import mysql.connector File "/usr/local/lib/python2.7/dist-packages/mysql/connector/init.py", line 54, in from .connection import MySQLConnection File "/usr/local/lib/python2.7/dist-packages/mysql/connector/connection.py", line 44, in from .authentication import get_auth_plugin File "/usr/local/lib/python2.7/dist-packages/mysql/connector/authentication.py", line 41, in from urllib.parse import quote ImportError: No module named parse 25.10.2021 09:29:29 - pluginLoader [ERROR ] error loading plugin: MySQL 25.10.2021 09:29:29 - pluginLoader [DEBUG ] error loading plugin: MySQL Traceback (most recent call last): File "/opt/boswatch/includes/pluginLoader.py", line 32, in loadPlugins plugin = loadPlugin(i) File "/opt/boswatch/includes/pluginLoader.py", line 106, in loadPlugin return imp.load_module(plugin["name"], plugin["info"]) File "/opt/boswatch/plugins/MySQL/MySQL.py", line 17, in import mysql.connector File "/usr/local/lib/python2.7/dist-packages/mysql/connector/init.py", line 54, in from .connection import MySQLConnection File "/usr/local/lib/python2.7/dist-packages/mysql/connector/connection.py", line 44, in from .authentication import get_authplugin File "/usr/local/lib/python2.7/dist-packages/mysql/connector/authentication.py", line 41, in from urllib.parse import quote ImportError: No module named parse

Ich habe schon versucht, mittels pip install setuptools und pip install parse das Parse-Modul nachzuinstallieren. Auch danach bleibt die Fehlermeldung bestehen. Auch ein reboot half nichts.

Vielleicht kann mir dabei noch jemand weiterhelfen. Das wäre total klasse, denn aktuell stochere ich mit meinem Halbwissen im Dunklen herum. Dankeschön!

lgremme commented 2 years ago

Moin,

kann es sein, dass du ein Problem mit Python 2.7 hast? Wir installieren im Install-Skript über pip den MySQL-Connector nach, da die alte Version kein UTF8MB4 unterstützt. Issue für die Korrektur des Installers: https://github.com/Schrolli91/BOSWatch/issues/445

u918244 commented 2 years ago

Was gäbe es denn dazu an Hinweisen? Ich nutze ein reguläres DietPi mit Debian 10 Grundlage. Das Install-Script vom boswatch ist ohne Probleme durchgelaufen. Ich habe sogar noch einmal Python nachinstalliert mit apt-get -o DPkg::options::=--force-confmiss --reinstall install python Auch das hat nichts gebracht. Ich bekomme nach wie vor die Fehlermeldung beim Start mit in der config aktiviertem MySQL Plugin. Mein Python ist in Version Python 2.7.16 installiert. Was kann ich jetzt noch checken? Oder soll ich den Raspi noch einmal komplett neu aufsetzen? Ist doch ein Raspberry OS sinnvoll? Eigentlich gefällt mir DietPi so viel besser...

lgremme commented 2 years ago

Probier mal die Datenbank direkt über Python anzusprechen: https://github.com/Schrolli91/BOSWatch/issues/472#issuecomment-682176131 Du kannst zu Fuß mal versuchen, die Datenbank zu kontaktieren, ohne das Skript. Alternativ kannst du vielleicht vergleichen, ob dir noch Python-Pakete fehlen. Auf einer zweiten SD-Karte Raspi OS installieren und im Nachgang vergleichen, was dir dpkg -l | grep python und pip list ausgibt.

u918244 commented 2 years ago

Hmm, das manuelle Kontakten scheint auch nicht zu funktionieren: _Python 2.7.16 (default, Oct 10 2019, 22:02:15) [GCC 8.3.0] on linux2 Type "help", "copyright", "credits" or "license" for more information.

import mysql import mysql.connector Traceback (most recent call last): File "", line 1, in File "/usr/local/lib/python2.7/dist-packages/mysql/connector/init.py", line 54, in from .connection import MySQLConnection File "/usr/local/lib/python2.7/dist-packages/mysql/connector/connection.py", line 451 f"This connection is using {tlsversion} which is now " ^ SyntaxError: invalid syntax

Langsam weiß ich nicht mehr weiter. Ich habe Python einem forced reinstall unterzogen und habe auch den mysql-connector gezwungen neu installiert. Keine Änderung.

flothi commented 2 years ago

Das sieht mir aber eher nach einem mySQL als nach einem Python-Problem aus; kannst du denn (als normaler User) auf die Datenbank zugreifen? Ohne Python, direkt Konsole? Wenn nein, müsste man sich mal mit dem Thema Sockets bei der Datenbank auseinandersetzen.

u918244 commented 2 years ago

Von der Konsole aus kann ich auf die Datenbank problemlos zugreifen. Ein mittels phpmyadmin manuell angelegter Datensatz kann problemlos ausgegeben werden. Screenshot 2021-10-26 093200

flothi commented 2 years ago

Du bist da aktuell als root eingeloggt. Geht das auch als "normaler" User?

u918244 commented 2 years ago

Das Gleiche nochmal "in grün": grafik Der user boswatch wurde mit ganz normalen Benutzerrechten angelegt.

u918244 commented 2 years ago

Bei einer Installation vom originalen Raspbian OS "Buster" kommt der gleiche Fehler wie oben beschrieben. Irgendwo scheint hier ein grundlegendes Problem zu liegen. Meine alten Installationen waren immer vor Buster und auch mit alten Versionen von boswatch. Insofern ist es jetzt schwierig, herauszufinden, auf welcher Seite der Fehler liegt. Kann den evtl. jemand nachvollziehen?

u918244 commented 2 years ago

SOLVED: Folgende Vorgehensweise ergab (nach langer Netzrecherche) den für mein System helfenden Weg: Es sollte (gem. https://flutterq.com/solved-import-no-module-named-mysql-connector-using-python2/ ) nicht mit pip der mysql-connector-python installiert werden, sondern mit der Zeile pip install mysql-connector-python-rf dieser Connector. Das hat zumindest bei mir geholfen, das Plugin startet durch.

ERGÄNZUNG: Auch mit dem DietPi funktioniert es jetzt. Es gibt nur ein paar Stolpersteine: