Hallo zusammen,
gefühlt betreibt jeder seine FHEM Installation mit dblog in Docker, aber nirgendwo finde ich einen Hinweis wie genau man das am besten umsetzt.
FHEM läuft bei mir auf einem Raspberry 4 mit 4GB und Bullseye in einem Docker Container. Welche Datenbank würdet ihr empfehlen? Mir scheint, dass häufig MariaDB genutzt wird. Habe mich an der Installation versucht, aber mir ist dann direkt unklar wie ich FHEM mit der Datenbank verbinde.
Kann mich jemand in die richtige Richtung schubsen?
Hi,
naja was soll da besonders sein? MariaDb konsequenterweise als Container, ich würde alles zusammen mit docker compose machen, und dann weiter wie immer?
help dblog
Gruß Otto
Hallo Otto,
vielen Dank schon einmal für deine Antwort. Ich tue mich tatsächlich immer etwas schwer unterschiedliche Container zu verknüpfen, da muss ich mich wohl noch mal in die Basics einlesen. Ich hatte gehofft das es vielleicht eine Anleitung gibt, das Wiki ist ja in der Regel eine Goldgrube, nur dazu bin ich nicht fündig geworden.
Würdest du den Ansatz verfolgen beide Container in ein gemeinsames Netzwerk zu stecken? Bzw. wie bekommt man es hin, dass die Container kommunizieren?
Ich bin einerseits begeistert vom Docker-Ansatz, andererseits alle paar Tage kurz vorm Verzweifeln ;D
Ich habe dazu noch eine zweite Frage:
Mit der Zeit wird die Datenbank ja anwachsen, daher dachte ich es wäre vielleicht sinnvoll, wenn die Daten direkt auf meiner Synology gesichert werden.
Mithilfe dieser Anleitung: https://jsx.red/synology-nas-mit-dem-raspberry-verbinden/ habe ich mittels NFS einen Ordner gemountet (verstehe ich richtig, das die Dateien dann direkt auf der Synology sind und es kein gemeinsamer Ordner a la Dropbox ist oder?
Nur wenn ich nun einen mariadb Container starte und das Volume /config mit meinem gemounteten Ordner verknüpfe bekomme ich im Log von mariadb immer Fehler bzgl. Berechtigungen. Konnte ich auch soweit nachvollziehen: Sobald ich den Ordner im fstab habe und mounte sudo mount -a
werden die Berechtigungen auf root:root gesetzt. Muss ich dem mariadb Container User und Gruppe root zuweisen damit es klappt?
Naja wie gesagt: docker compose verwenden, wenn man da "sparsam" konfiguriert landen die automatisch in einem (docker) Netzwerk. ;)
Hier (https://heinz-otto.blogspot.com/2021/06/docker-ein-kleiner-schnellstart-workshop.html) geht es nicht um mariaDb - aber vielleicht hilft das für den Einstieg?
Aber:
Anstatt die Datenbank Files auf die NAS zu packen, würde ich es vom Design her für besser halten die komplette MariaDb auf der NAS zu betreiben.
Da gab es mal unseren Stammtisch zum Thema dbLog (https://forum.fhem.de/index.php/topic,52727.msg953319.html#msg953319), da findest Du im Anhang ein PDF, vielleicht hilft es.
Gruß Otto
Zitat von: fhemjan am 23 August 2022, 22:59:53
Hallo zusammen,
gefühlt betreibt jeder seine FHEM Installation mit dblog in Docker, aber nirgendwo finde ich einen Hinweis wie genau man das am besten umsetzt.
FHEM läuft bei mir auf einem Raspberry 4 mit 4GB und Bullseye in einem Docker Container. Welche Datenbank würdet ihr empfehlen? Mir scheint, dass häufig MariaDB genutzt wird. Habe mich an der Installation versucht, aber mir ist dann direkt unklar wie ich FHEM mit der Datenbank verbinde.
Kann mich jemand in die richtige Richtung schubsen?
MariaDB ist eine Möglichkeit. Abhängig von der Datenmenge, und auch persönliche Vorzüge. Ich nuztze SQLite für Fhem da ich dann nur einen Container sichern muss. Wenn dir das MariaDB-Setup in der Lernphase zu kompliziert ist kannst auch mal mit SQLite anfangen, Fhem kennenlernen, Docker verstehen. Migrieren kannst auch später wenn nötig. SQLite schreibt alles in ein File im Filesystem und braucht keinen eigenen Container.
Sicherung ist wichtig, egal ob die DB wächst oder nicht. Nicht nur die DB-Daten sondern auch Fhem. Und nicht nur sichern, sondern auch mal testen ob du aus der Sicherung wieder zurückspielen kannst.
Hallo zusammen,
danke an Otto zunächst für den Link zu den Docker-Infos!
Zitat von: Otto123 am 24 August 2022, 10:43:12Anstatt die Datenbank Files auf die NAS zu packen, würde ich es vom Design her für besser halten die komplette MariaDb auf der NAS zu betreiben.
Interessanter Ansatz! Ich denke das könnte mein Weg werden. Falls ich zunächst doch verzweifle schau ich mir den Lösungsweg mit SQLite an.
Meine Sicherung mache ich händisch mit dem Windiskimager, nicht gerade komfortabel, aber es funktioniert ziemlich idiotensicher. Im Hinterkopf hab ich da immer noch eine Lösung mit rsync auf die Synology, da bin ich aber noch nicht zur Umsetzung gekommen...
Zitat von: fhemjan am 24 August 2022, 12:18:40
Hallo zusammen,
danke an Otto zunächst für den Link zu den Docker-Infos!
Interessanter Ansatz! Ich denke das könnte mein Weg werden. Falls ich zunächst doch verzweifle schau ich mir den Lösungsweg mit SQLite an.
Meine Sicherung mache ich händisch mit dem Windiskimager, nicht gerade komfortabel, aber es funktioniert ziemlich idiotensicher. Im Hinterkopf hab ich da immer noch eine Lösung mit rsync auf die Synology, da bin ich aber noch nicht zur Umsetzung gekommen...
Hallo zusammen,
und noch ein Denkanstoß.
Da MySQL von Oracle auch direkt als Docker Container angeboten wird habe ich mich für den entschieden. Allerdings ist der Container nur für 64 Bit verfügbar.
Auf einem RPI habe ich deshalb die 64 Bit OS Version laufen und alles in allem läuft nun ca 1 Jahr stabiel. Der MySQL Container wird recht regelmäßig aktualisiert
und man ist direkzt am Original.
Aber Achtung, im Original gibt es bereits an einigen Stellen ziemliche Weiterentwicklungen, die auch teilweise andere SQL Abhängigkeuten haben. Besonders
merke ich das beim SELECT mit GROUP BY, was etwas gewöhnungsbedürftig ist.
Das DbLog Modul arbeitet bisher sauber und auch im Grafana merke ich bisher keine Probleme.
Version 8.0.30
amd64, arm64v8
Als Tools wäre da noch
- MySQL Workbench 8.0 CE
- SQLBackupAndFTP
VG
Christian
Also mein Weg ist nun die MariaDB auf der Synology zu nutzen, dann kann ich sie dort auch direkt charmant mit phpmyadmin verwalten.
Der Part war denkbar einfach und läuft: Ich konnte über die Befehle aus der Datei db_create_mysql.sql den fhemuser inkl. von mir definiertem Passwort und die entsprechenden Tabelleneinträge generieren.
Auf der Synology hab ich in der Firewall den Port 3306 freigegeben.
Ich habe dann die db.conf aus /contrib/dblog in das Hauptverzeichnis kopiert. Angepasst habe ich
host=ip-Synology, password= das generierte Passwort für den fhemuser
Wenn ich nun das DbLog device definieren will mit define logdb DbLog ./db.conf .*:.*
komme ich entweder auf eine weiße Seite auf der etwas von Fehlercode 400 steht, oder, nach Neuladen der fhem Seite und erneuter Eingabe ein "could not read connection".
Habt ihr eine Idee wo es gerade noch hakt? Ich habe mal die Konfiguration vom Fhem Container angehängt falls das hilft. Er läuft im Bridge Netzwerk.
Achso, also am allerschönsten wäre es natürlich, wenn ich meinen ursprünglichen FHEM-Container weiternutzen könnte.. Da scheitert es nur leider wie gesagt schon dran an die Dateien in den Verzeichnissen zu gelangen :(
Vielleicht habt ihr ja auch da einen Tip?
Zitat von: fhemjan am 25 August 2022, 23:58:23
Achso, also am allerschönsten wäre es natürlich, wenn ich meinen ursprünglichen FHEM-Container weiternutzen könnte.. Da scheitert es nur leider wie gesagt schon dran an die Dateien in den Verzeichnissen zu gelangen :(
Vielleicht habt ihr ja auch da einen Tip?
hast du in Fhem das Attribut "dnsServer" gesetzt? Docker kennt den Host bzw. dessen IP nicht.
Teste es mal mit der IP statt dem Hostnamen.
Zitat von: kadettilac89 am 26 August 2022, 09:21:58
hast du in Fhem das Attribut "dnsServer" gesetzt? Docker kennt den Host bzw. dessen IP nicht.
Teste es mal mit der IP statt dem Hostnamen.
Nein, das Attribut hab ich noch nicht gesetzt. Klingt sinnvoll, das schau ich mir an. Du meinst also
attr global dnsServer
?
Tatsächlich habe ich in der db.conf immer die IP der Synology genommen, da ich das Konstrukt eh nur im internen Netz bei mir nutzen will. Der Datenbank Port ist im Router nicht freigegeben, nur in der Synology.
wenn du 400 als Fehler bekommst ist das ein Netzwerk Problem oder Zugriff nur von localhost. Prüf mal im Eingabefeld oben einen Ping.
NAS durch deinen Hostnamen
192.168.0.30 durch deine IP ersetzen
{qx(ping -c 2 NAS)}
{qx(ping -c 2 192.168.0.30)}
Das sollte entweder erfolgreich sein, oder so was ähnliches brignen wenn Host nicht erreichbar ist. Ausgabe entweder direkt, oder im Log. Kann ein paar Sekundebn laufen ...
PING 192.168.0.30 (192.168.0.30): 56 data bytes
--- 192.168.0.30 ping statistics ---
2 packets transmitted, 0 packets received, 100% packet loss
ODER beim Hostname
ping: unknown host
Wenn Host und IP erreichbar ist, liegt es woanders. Zugriff ggf. nur von localhost aber nicht von extern erlaubt ... eins nach dem anderen.
mach dann auch einmal einen config Check direkt im DBLog
set logdb configCheck
Das gibt dir aus, welche Config gelesen wird, ob auf Fhem alles passt. Du hattest die Frage zu den Files gestellt.
Zitat von: fhemjan am 25 August 2022, 23:58:23
Achso, also am allerschönsten wäre es natürlich, wenn ich meinen ursprünglichen FHEM-Container weiternutzen könnte.. Da scheitert es nur leider wie gesagt schon dran an die Dateien in den Verzeichnissen zu gelangen :(
Vielleicht habt ihr ja auch da einen Tip?
Warum solltest Du den Container nicht nutzen können?
Warum kommst Du nicht an die Dateien in den Verzeichnissen?
ZitatIch habe dann die db.conf aus /contrib/dblog in das Hauptverzeichnis kopiert. Angepasst habe ich
Wie hasst Du denn das gemacht?
@kadettilac89: Danke für deine Lösungssschritte, ich teste sie sobald ich eine ruhige Minute am Rechner habe.
@Otto123: Das habe ich an einem neu aufgesetzten FHEM Container gemacht. Dabei habe ich auf dem Raspberry ein /docker-fhem Verzeichnis erstellt und das mit Bind in Portainer mit dem Container verbunden. Wenn ich den Container nun mit PUID und GID 1000 gestartet hab, konnte ich auf das Verzeichnis zugreifen. (Nur nebenbei, mit der Standard FHEM Einstellung PUID und GID 6061 bin ich an das Verzeichnis aufgrund der Rechte nicht mehr dran gekommen sobald der Container einmal gestartet war.
--> bei meinem ursprünglichen FHEM Container (den ich am liebsten, wenn denn möglich behalten würde) habe ich das Volume dummerweise in Portainer erstellt und direkt verbunden. Aufgrund von Schwierigkeiten die ich nicht ganz verstehe (man findet dazu etwas wenn man googled und brauch dafür scheinbar den Portainer Agent), fehlt bei mir in Portainer > Volumes der Button ein Volume zu browsen oder etwas hochzuladen. In der Portainer Doku sieht es kompett anders aus als bei mir, dort scheint es ganz leicht zu sein. Ich habe dann hinbekommen mich über die shell in das docker Verzeichnis selbst zu begeben mit docker exec -it und der ID des Containers
. Ich habe so auch die Datei gefunden, mir ist es dann mit meinen Kenntnissen jedoch nicht gelungen die Datei im Container direkt zu ändern. Es gab Fehler a la "Bash kennt die Befehle nicht (nano, cp, usw.)". An dem Punkt hatte ich mit meinem ursprünglichen Container erst einmal aufgegeben und überlegt ob es sinnvoller ist in den sauren Apfel zu beißen und eine Neukonfiguration zu machen...
Hallo fhemjan,
Du wirst immer in Schwierigkeiten laufen wenn Du eine bunte Mischung an Tools verwendest - aber keines konsequent ;)
docker exec -it ist quasi der kleine "Knopf" in der Portainer UI wie im ersten Bild gezeigt. :D
Den Speicherort für das Volume siehst Du in der Portainer UI im linken Menüpunkt Volumes - dann Volume Details und dann Mountpath.
Wenn Du den kopierst und das Terminal zum Docker Host aufmachst solltest Du mit sudo ls -lha Dein MountPath den Inhalt deines FHEM Ordners sehen.
Wenn das funktioniert, kannst Du relativ leicht dein System von A nach B umziehen um es weiter zu nutzen und besser zu beherrschen :) versuch das mal dann reden wir weiter ;)
Das mit den IDs und wie man das umgeht, hast Du ja selbst schon festgestellt ;)
Gruß Otto
@fhemjan,
Zitat
Auf der Synology hab ich in der Firewall den Port 3306 freigegeben.
Prüfe den Port nochmal genau. MariaDB 10 installiert sich bei meiner Synology automatisch auf Port 3307 ! wenn man ihn nicht manuell ändert.
Dann checke das MariaDB Paket ob der Haken bei TCP-Verbindung aktivieren gesetzt ist.
Wenn das so ist, auf dem FHEM Server testen:
heiko@fhemtest:~$ mysql -h 192.168.2.10 --port=3307 -u root -p
Enter password:
ERROR 1130 (HY000): Host 'fhemtest.myds.me' is not allowed to connect to this MariaDB server
heiko@fhemtest:~$
Du solltest bis zu PW-Abfrage kommen. Bei einer frischen Installation (wie ich es testweise gerade gemacht habe) geht der Zugriff von einer remoten Maschine nicht, weil der User nur für den lokalen Zugriff freigegeben ist. Dann mit phpMyAdmin schauen den User auch für remote Verbindungen freizugeben. Natürlich nicht root wie bei meinem Test sondern den richtigen User den du verwenden willst.
Man braucht erstmal keinerlei Volumes von der Synology bzgl. MariaDB zu mounten. Die DB läuft auf der Synono und alle Kommunikationen laufen über das Netz (DbLog genauso wie DbRep oder SVG-Plots etc.)
Für Backup kann man dann z.B. phpMyAdmin bemühen, eigene Scripts anlegen oder DbRep (hier braucht man je nach Szenario Mounts) nutzen.
Grüße,
Heiko
@Otto123:
Es hat geklappt, ich habe nun einen FHEM Container mit bind an einen Container meiner Wahl mit dem Inhalt meines alten Volumes. D.h. alle Einstellungen sind mit umgezogen :) Vielen vielen Dank für die Hilfe und die Geduld!
Es hakt jedoch weiterhin an der Verbindung zu MySQL auf der Syno. Ein guter Hinweis kam von DS_Starter --> TCP war beim MariaDB Paket auf der Syno noch nicht aktiviert. Port ist dort von Anfang an auf 3306 eingestellt. Ebenso in der Firewall.
Zitat von: kadettilac89 am 26 August 2022, 09:55:40
wenn du 400 als Fehler bekommst ist das ein Netzwerk Problem oder Zugriff nur von localhost. Prüf mal im Eingabefeld oben einen Ping.
Das ist interessant. Mit der IP der Syno gibt es die Meldung
PING 192.168.xxx.xxx (192.168.xxx.xxx): 56 data bytes
--- 192.168.xxx.xxx ping statistics ---
2 packets transmitted, 0 packets received, 100% packet loss
Wenn ich das Ganze mit meiner DDNS Adresse teste funktioniert es. Ich möchte aber die MariaDB nicht nach draußen öffnen.. Habt ihr eine Idee wie ich herausbekomme warum er meine Syno per IP nicht findet? Wenn ich die IP über die shell anpinge passiert gar nichts. Hängt quasi.
Kann es sein, dass ich an der Firewall der Synology noch etwas ändern muss? Ich werde den Ping bei nächster Gelegenheit mal mit deaktivierter Firewall testen.
Zitat von: fhemjan am 29 August 2022, 21:11:53
Wenn ich das Ganze mit meiner DDNS Adresse teste funktioniert es. Ich möchte aber die MariaDB nicht nach draußen öffnen.. Habt ihr eine Idee wie ich herausbekomme warum er meine Syno per IP nicht findet? Wenn ich die IP über die shell anpinge passiert gar nichts. Hängt quasi.
Ich würde jetzt mal 2-Gleisig testen.
1) Du hast ein DNS-Problem, kannst du die Synology per Name anpingen. Ich weiß nicht wie die bei dir heißt. "diskstation" sollte der defaultname sein wenn du den nicht geändert hast. Den Namen siehst du auch in deinem Router, z. B. Fritzbox.
2) Du sagst, dass die Syno über den DDNS-Namen erreichbar wäre. Gib mal kurz nach außen frei und teste ob der configCheck vom dblog erfolgreich ist wenn du diesen hostamen nutzt. Nur um die DB-Config abzuschließen. Wenn das geht kannst du DB erstmal beiseite legen. Verigiss nicht die Freigabe nach außen sofort wieder zu schließen
Interessehalber, welches Syno hast du?
Du nutzt deinen Screenshot nach portainer. Hast du da individuell irgend welche Netzwerke angelegt, oder manuell dns, ip, irgend was vom Netzwerk abweichend konfiguriert? Bride Mode? Poste mal die Netzwerkinformation aus Portainer. Um weitere Tips zu geben, nutzt du noch weitere Container neben Fhem?
Zitat von: fhemjan am 30 August 2022, 09:19:56
Kann es sein, dass ich an der Firewall der Synology noch etwas ändern muss? Ich werde den Ping bei nächster Gelegenheit mal mit deaktivierter Firewall testen.
Ping sollte nicht durch Firewall blockiert werden. Teste den Ping von einem anderen Rechner, z. B. deinen Winodws Rechner dann hast du Gewissheit.
Edit: Du kannst ja die Syno mal rebooten, für den Fall das sich was "verkantet" hat.
Zitat von: kadettilac89 am 30 August 2022, 09:24:12
1) Du hast ein DNS-Problem, kannst du die Synology per Name anpingen.
Habe ich ausprobiert, klappt nicht. Unter Windows klappt es auch mit der IP nicht. edit: hatte mich vertippt, sie heißt bei mir "Diskstation". Wenn ich Diskstation anpinge zeigt er die richtige IP, hat aber immer Zeitüberschreitungen. Wenn ich unter Windows den Raspberry per IP anpinge geht es auf anhieb.[/quote]
Zitat von: kadettilac89 am 30 August 2022, 09:24:12
2) Du sagst, dass die Syno über den DDNS-Namen erreichbar wäre. Gib mal kurz nach außen frei und teste ob der configCheck vom dblog erfolgreich ist wenn du diesen hostamen nutzt. Nur um die DB-Config abzuschließen. Wenn das geht kannst du DB erstmal beiseite legen. Verigiss nicht die Freigabe nach außen sofort wieder zu schließen
Also, habe den Port 3306 in der Fritzbox geöffnet und in der db.conf auf den DDNS der Synology gewechselt. Dann wieder
define logdb DbLog ./db.conf .*:.*
Kein Erfolg --> "could not read connection"[/quote]
Zitat von: kadettilac89 am 30 August 2022, 09:24:12
Interessehalber, welches Syno hast du?
Ist eine DS920+
Zitat von: kadettilac89 am 30 August 2022, 09:24:12
Du nutzt deinen Screenshot nach portainer. Hast du da individuell irgend welche Netzwerke angelegt, oder manuell dns, ip, irgend was vom Netzwerk abweichend konfiguriert? Bride Mode? Poste mal die Netzwerkinformation aus Portainer. Um weitere Tips zu geben, nutzt du noch weitere Container neben Fhem?
Korrekt, nutze Portainer.
Habe pihole/unbound, fhem und watchtower am laufen.
FHEM läuft in einem neu angelegten Bridge-Netzwerk
Pihole/unbound nutzt ein Macvlan und ist in der Fritzbox als DNS-Server angelegt. Tatsächlich ist es so, dass die Fritzbox seit ich pihole aktiviert habe, nicht mehr über fritz.box erreichbar ist... Evtl. ein Hinweis? Öffne sie jetzt immer über die IP. Diese lässt sich übrigens in Windows anpingen.
Ich probiere mal kurz wie sich alles verhält wenn ich pihole deaktiviere.
Und noch interessant(!!!): Der Synology Assistant findet die Synology nicht! Habe bei der Syno die Standardports 5000 und 5001 geändert, kann das der Grund sein?
Ich habe im Anhang je einen Screenshot von den Netzwerken und den Containern hochgeladen.
EDIT!!!!! --> Wenn ich die Firewall ausschalte bekomme ich einen Ping von der Diskstation! Wie kann das sein?!
Bekomme jedoch auch mit ausgeschalteter Firewall den gleichen Fehler bei FHEM: could not read connection
Ich wette es hängt mit einem Thema zusammen, das ich im Synology Forum offen habe: Ich kann, wenn ich mich über OpenVPN per Handy mit der Synology verbinde, nicht auf die anderen Geräte im Netzwerk zugreifen. Aber über alles was sich auf der Synology befindet, auch Container im Docker auf der Syno. Wenn ich aber die Firewall deaktiviere habe ich auf einmal Zugriff auf alles.
Zitat von: fhemjan am 30 August 2022, 22:20:34
EDIT!!!!! --> Wenn ich die Firewall ausschalte bekomme ich einen Ping von der Diskstation! Wie kann das sein?!
Bekomme jedoch auch mit ausgeschalteter Firewall den gleichen Fehler bei FHEM: could not read connection
Ich wette es hängt mit einem Thema zusammen, das ich im Synology Forum offen habe: Ich kann, wenn ich mich über OpenVPN per Handy mit der Synology verbinde, nicht auf die anderen Geräte im Netzwerk zugreifen. Aber über alles was sich auf der Synology befindet, auch Container im Docker auf der Syno. Wenn ich aber die Firewall deaktiviere habe ich auf einmal Zugriff auf alles.
Es wird hier ziemlich off topic hier. Das Forum ist für fhem. Das Problem besteht scheinbar auf deiner Synology und ggf. auch noch im Portainer Setup. Ich würde hier schrittweise vorgehen.
Synology fixen, das hast ja auch mit dem Post im Syno-Forum begonnen.
Sicherstellen, dass du die DB auf der Synology erreichen und verbinden kannst. Dazu würde ich ein DB-Tool auf einem Windows Rechner (einem normalem Arbeitsrechner) der funktioniert installieren. Zum Beispiel HeidiSQL, das nutze ich lange. https://www.heidisql.com/
Wenn du mit dem Arbeitsrechner die DB erreichen und auch beschreiben, lesen, ... kannst, erst dann, zurück zu Portainer, Docker und fhem. Sonst hast du zu viele Baustellen. Wenn du überall schraubst geht am Schluss auch ncihts, aber du weißt dann auch nicht ob es an gemachten Änderungen liegt.
Auch offtopic, nur als Randbemerkung. Ich kenne dein Setup und deine Pläne nicht. Nur weil überall irgend welche Firewalls und separate Netze sind bedeutet das nicht, dass die Sicherheit steigt. Es steigert die Komplexität und auch das Risiko, dass ein Loch aufgerissen wird.
Da ist was dran. Besten Dank für die Hilfe soweit!
So, ich habe mich entschieden einen anderen Weg einzuschlagen. Ich installiere MariaDB und phpmyadmin auch auf dem Raspberry.
So geschehen: habe beides über Portainer installiert und kann über die Portainer Console auf die mysql mit dem fhemuser zugreifen (s. Anhang).
Über phpmyadmin habe ich über das .sql skript die Datenbank fhem, dn fhemuser und die Tabellen angelegt. fhemuser hat alle Rechte bekommen.
Die db.conf habe ich auf die IP des Raspberrys angepasst und entsprechend das Passwort vom fhemuser eingetragen.
Ich kann nun in FHEM das dblog device anlegen, aber der fhemuser kann sich nicht verbinden.
Angehängt hab ich die kKonfiguration vom device in fhem, die Ausgabe von configCheck (könnt ihr mir vielleicht sagen welches Log-File da gemeint ist?) und die Ausgabe vom Eventmonitor.
Kann jemand helfen? Das muss doch irgendwie zu schaffen sein mit der Datenbank
edit: Dateianhänge gelöscht, da offtopic
ZitatDie db.conf habe ich auf die IP des Raspberrys angepasst
Welche IP? Der Maria Container läuft in welchem Netzwerk?
Mir ist nicht klar was Du wirklich getan hast. Wenn Du jetzt so vorgehen willst, solltest Du FHEM und die Datenbank im gleichen (docker) Netzwerk betreiben.
Hallo Otto,
ich habe fhem, MariaDB und phpmyadmin in einem gemeinsamen Netzwerk in Docker (Portainer) laufen.
Sieht aus wie im Anhang.
Für die db.conf habe die IP des Raspberrys im Heimnetz genommen: 192.168.178.210
Habe eben auch mal die IP in Docker versucht: 172.18.0.3
Hatte mit beiden keinen Erfolg.
Wenn ich stattdessen localhost nehme, kann fhem nicht auf den mysql sock zugreifen (Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock').
edit: db.conf screenshot hochgeladen (befindet sich direkt auf erster Ebene auf dem bind volume)
edit: Dateianhänge gelöscht, da offtopic
Vielleicht hilft das PDF im Anhang von dem Beitrag?
https://forum.fhem.de/index.php/topic,52727.msg953319.html#msg953319
Zitat von: fhemjan am 31 August 2022, 21:52:11
Hallo Otto,
ich habe fhem, MariaDB und phpmyadmin in einem gemeinsamen Netzwerk in Docker (Portainer) laufen.
Sieht aus wie im Anhang.
Für die db.conf habe die IP des Raspberrys im Heimnetz genommen: 192.168.178.210
Habe eben auch mal die IP in Docker versucht: 172.18.0.3
Hatte mit beiden keinen Erfolg.
Wenn ich stattdessen localhost nehme, kann fhem nicht auf den mysql sock zugreifen (Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock').
kannst du von phpmyadmin auf die datenbank fhem zugreifen?
Auf welche Host hat fhemuser Zugriff? Darf er '%'?
SELECT host, user FROM mysql.user;
Hallo @kadettilac89
ja. Habe über phpmyadmin die Datenbank fhem inkl. current und history über das sql skript angelegt. Kann mich mit root und mit fhemuser anmelden. fhemuser hat alle Rechte bekommen (s. Screenshots im Anhang).
Ich habe mich spaßeshalber auch mal über die console in Portainer im fhem container in die Datenbank mit dem fhemuser eingeloggt. Funktioniert, s. Screenshot
Habe noch mal Screenshots von allen Container-Einstellungen von fhem, maria und phpmyadmin gemacht.
edit: Dateianhänge gelöscht, da offtopic
Hast du in deinem Passwort evtl. Sonderzeichen ?
-> Commandref:
Hinweis zu Sonderzeichen:
Werden Sonderzeichen, wie z.B. @, $ oder %, welche eine programmtechnische Bedeutung in Perl haben im Passwort verwendet, sind diese Zeichen zu escapen. Das heißt in diesem Beispiel wäre zu verwenden: \@,\$ bzw. \%.
Und lege deinen DB-User zusätzlich an speziell mit der Hostberechtigung localhost.
Zitat von: DS_Starter am 31 August 2022, 22:58:36
Hast du in deinem Passwort evtl. Sonderzeichen ?
Oh ... mein ... Gott
Es funktioniert.
Ich danke allen Beteiligten vielmals, insbesondere DS_Starter: sollten wir uns jemals treffen erinnere mich bitte daran dir ein Bier auszugeben ;)
:) ... dann komm mal zu unserem Treffen. Otto hatte dir ja schon den Link zu "unserem" Thread gepostet. Bist herzlich eingeladen wie jeder der möchte.
Gute Nacht !
Ist nicht ganz meine Gegend, aber ich behalt es auf dem Scirm. Das Thema interessiert mich nämlich sehr :)
Hab doch noch einmal eine kurze Frage:
Ich hatte überlegt die mariadb auf einem USB Stick am Raspberry zu betreiben. Hab dafür einfach das Volume mit Bind auf einen gemounteten Stick angelegt und den Container quasi mit recreate neu gestartet. Jetzt bekomme ich keine Verbindung mehr mit phpmyadmin. Wenn ich das Volume wieder zurückstelle funktioniert es wieder. Kennt ihr das Verhalten?
Zitat von: fhemjan am 01 September 2022, 20:01:36
Hab dafür einfach das Volume mit Bind auf einen gemounteten Stick angelegt und den Container quasi mit recreate neu gestartet.
Und das Volume auch übertragen? Ansonsten war ja alles leer?
Hallo Otto, das will mir nicht so recht gelingen. Hab jetzt versucht mit sudo cp -ar die Daten aus dem bind volume von mariadb zu kopieren. Da bekomme ich cp: failed to preserve ownership for '/home/piuser1/usbstorage/mariadb/mariadb/config/databases/aria_log_control': Operation not permitted
cp: failed to preserve ownership for '/home/piuser1/usbstorage/mariadb/mariadb/config/databases/aria_log.00000001': Operation not permitted
cp: failed to preserve ownership for '/home/piuser1/usbstorage/mariadb/mariadb/config/databases/ibdata1': Operation not permitted
Wenn ich nur cp -r nutze hängt die shell und nichts passiert mehr, bekomme bei Tastatureingaben seltsame Zeichen..
die Datenbank läuft? :o dann wäre die Meldung zu erwarten.
Also ich denke: die Container dürfen nicht laufen!
Der beste Weg wäre wohl sowas:
docker container run --rm -it \
-v old_volume:/from \
-v new_volume:/to \
alpine ash -c "cd /from ; cp -av . /to"
Also das alte und das neue Volume in einem "neutralen" Container mounten und den Inhalt kopieren. Diesen Code habe ich auch noch nicht getestet - nur gefunden (https://www.google.com/search?q=docker+volume+copy). ;)
Gruß Otto