Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Was soll denn instance in der PyMySQL-Connection deiner Meinung nach bedeuten bzw. bewirken? Ich finde diesen Parameter in der PyMySQL-Doku nicht.
Die Fehlermeldung deutet ja ebenfalls darauf hin.
So würde ich zumindest die Doku deuten. Bei MSSQL und Oracle können mehrere Instanzen per Namen auf demselben Port kontaktiert werden, bei MySQL wäre mir nichts derartiges bekannt.
Woher kommst du denn zu deiner Überzeugung, irgendwo musst du ja dann wohl etwas derartiges gelesen haben?
019-01-24 00:29:51 ERROR root Database [Database]: Could not connect to the database: (2003, "Can't connect to MySQL server on 'localhost' ([Errno 111] Verbindungsaufbau abgelehnt)")
2019-01-24 00:29:51 ERROR plugins.database Database: initialization failed: (2003, "Can't connect to MySQL server on 'localhost' ([Errno 111] Verbindungsaufbau abgelehnt)")
Zu meiner Verteidigung möchte ich anfügen, dass ich damals nicht den Inhalt der Konfiguration von pino geprüft hatte sondern nur die Form.
Da war ein instance drin, also hatte ich das Leerzeichen bemängelt. Dass da gar kein Instance hingehört, hatte ich allerdings nicht beachtet.
Du solltest aber auch nicht einfach Konfigurationen anderer Benutzer kopieren, sondern Dokus konsultieren und wissen, was du tust.
Nur du kannst wissen, wie und wo dein Datenbankserver installiert ist.
Zu deinem Problem: Offensichtlich horcht auf dem SHNG-Server keine MySQL-Instanz auf dem Port 3306 oder sie akzeptiert keine Verbindungen von localhost.
Also gilt wieder: Du musst wissen, wie und wo du den MySQL-Server (oder evtl. MariaSQL) betreibst und ob dieser auch gestartet ist.
192.168.178.234 ist die IP deines SHNG-Servers?
phpMyAdmin hat ja nichts mit dem MySQL-Server zu tun, sondern ist auch nur ein Client davon. Was hast du denn dort für Einstellungen vorgenommen? Dieselben müssten ja auch in SHNG funktionieren.
Da habe ich keine Ahnung.
Aber die Fehlermeldung sagt klar, dass der Server die Verbindung ablehnt. Das deutet erstmal nicht darauf hin, dass ein falscher Treiber schuld ist.
2019-01-24 02:10:09 ERROR root Database [Database]: Could not connect to the database: (1045, "Access denied for user 'Smarthome'@'SmartHomeNG.fritz.box' (using password: YES)")
2019-01-24 02:10:09 ERROR plugins.database Database: initialization failed: (1045, "Access denied for user 'Smarthome'@'SmartHomeNG.fritz.box' (using password: YES)")
"Access denied for user 'Smarthome'@'SmartHomeNG.fritz.box' (using password: YES)"
Ist ja wieder ziemlich eindeutig: Der User hat keine rechte auf die Datenbank.
Schau mal in das Register "Rechte" in phpMyAdmin. Er braucht sicherlich mindestens INSERT, SELECT, DELETE, UPDATE.
Falls jemand anderes das hier mal liest:
Wenn man die Datenbankobjekte nicht vorher manuell angelegt hat, würde dies das Plugin tun. Dazu braucht es mindestens noch CREATE.
Im selbst betreuten Heimnetz kann man aber IMHO auch getrost ALL PRIVILEGES geben.
Dass das Plugin nach diesem Fehler trotzdem ein Select versucht, ist eigentlich falsch.
Ich meine das Problem hatte schon jemand hier im Forum.
Wenn ich das richtig erinnere, muss connect ein String sein. So wie es in der Konfiguration steht, ist das aber eine Liste von Strings. Schreib mal die ganzen -Optionen auf eine Zeile und setze sie in Anführungszeichen.
Viele Grüße
Martin
There is no cloud. It's only someone else's computer.
Meines Wissens passt die Liste schon so wie sie ist.
In database/__init__.py wird Utils.string_to_list verwendet, und da hast du selbst implementiert, dass eine Liste direkt wieder als Liste zurückkommt.
Entscheidend ist aber, dass es eine Liste von Strings ist und nach den Doppelpunkten kein Leerzeichen stehen darf.
Sonst wird es in YAML als eine Liste von dicts interpretiert. Aber auch Anführungszeichen helfen nicht, weil in lib/db.py ein Partition nach : ohne Trim geschieht.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar