NEWS
SQL Adapter - Zugriff auf externe Datenbank
-
Hallo zusammen!
Ich habe eine externe MariaDB/MySQL auf einem Synology NAS. Diese möchte ich über den SQL Adapter (später über JS) mit Daten befüllen.
Allerdings kann keine Verbindung aufgebaut werden. Der Verbindungstest gibt eine eigenartige Hostadresse zurück.
Den Host 'raspberrypi.fritz.box' gibt es so nicht!
Wird der host "localhost" eingetragen wird korrekterweise die Adresse 'root'@'127.0.0.1' zurückgegeben.
Auf dem raspberrypi ist keine MySQL Datenbank installiert.
Welche Einstellung muss geändert werden, damit der Zugroff funktioniert?Besten Dank im Voraus!
tobi6a -
Sowas macht man nicht als root, gemeinhin gibt es dafür user und/oder Gruppen, die auf Datenbanken zugreifen können.
Grundsätzlich meldet man sich auch nie direkt als root an.
Und warum sollte es den Host nicht geben?dig raspberrypi
sagt?
-
@thomas-braun
Danke für die Rückmeldung.
Selbstverständlich arbeite ich produktiv nicht mit dem user "root". Das sollte nur zu Demonstration erfolgen. Der user in der Produktionsumgebung ist verschieden und hat auch ein anderes Passwort.
Die Frage ist warum der iobroker/raspberrypi die Host-Adresse 192.168.178.70 in 'raspberrypi.fritz.box' auflöst. Dort gibt es keine MySQL Datenbank. Auf dem RaspberryPi ist auch keine MySQL DB installiert. Gibt es eine Config Datei, in der man entsprechende Einstellungen durchführen, bzw. korrigieren kann?Der obige Befehl
dig raspberrypi
sagt
; <<>> DiG 9.16.42-Debian <<>> raspberrypi ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52957 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 3 ;; QUESTION SECTION: ;raspberrypi. IN A ;; ANSWER SECTION: raspberrypi. 9 IN A 192.168.178.106 raspberrypi. 9 IN A 192.168.178.115 ;; AUTHORITY SECTION: raspberrypi. 9 IN NS fritz.box. ;; ADDITIONAL SECTION: fritz.box. 9 IN A 192.168.178.1 fritz.box. 9 IN AAAA fd00::9a9b:xxxx:xxxx:xxxx fritz.box. 9 IN AAAA 2001:9e8:xxxx:xxxx:9a9b:xxxx:xxxx:3ece ;; Query time: 315 msec ;; SERVER: 192.168.178.1#53(192.168.178.1) ;; WHEN: Tue Aug 08 17:36:58 BST 2023 ;; MSG SIZE rcvd: 156
-
@tobi6a sagte in SQL Adapter - Zugriff auf externe Datenbank:
Selbstverständlich arbeite ich produktiv nicht mit dem user "root".
Man arbeitet NIE mit dem root. Nicht kurz oder eben mal so, NIE.
Der lebt nur aus technischen Gründen im Keller des Systems, den holt da aber nie einer raus.
Was willste denn damit 'demonstrieren'? Das es nicht gescheit funktioniert, oder was?Da hast du Chaos in den Tabellen:
;; ANSWER SECTION: raspberrypi. 9 IN A 192.168.178.106 raspberrypi. 9 IN A 192.168.178.115
Wohin soll denn der hostname raspberrypi aufgelöst werden? Ein hostname darf es nur einmal im Netz geben (Jedenfalls in einem 'Wald-und-Wiesen-Otto-Normalo-Netz).
Wie betreibst du denn dein FritzBox-Netzwerk? Per DHCP? Mit fixen IPs? Mit 'Fixer Vergabe via DHCP'? -
@tobi6a sagte in SQL Adapter - Zugriff auf externe Datenbank:
Welche Einstellung muss geändert werden, damit der Zugroff funktioniert?
Moin,
das ist kein Fehler aus demioBroker
oder demSQL-Adapter
, das ist ein Fehler von Deiner SQL Datenbank.Was hast Du auf der Syno installiert,
MariaDB
,mySQL
?Du musst auf der Datenbank einen User anlegen, der auf die Datenbank, die Du einrichten möchtest, auch den Zugriff hat.
Siehe Dir mal die einschlägigen Seiten des Datenbankmanagers an
MariaDB
https://mariadb.com/kb/en/create-user/Beim User gibt man immer an, aus welchem Netz der kommt, bei Dir ist das aktuell
root@raspberrypi.fritz.box
, ich gehe davon aus, das Du eine FritzBox hast und das der PI,raspberrypi
heist.Also solltest Du einen User, sagen wir mal
iobroker
auf der Datenbank anlegen z. B.:CREATE USER iobroker@raspberrypi.fritz.box IDENTIFIED BY 'password';
Und dem User alle nötigen Rechte für die Datenbank geben, sagen wir mal, die Datenbank heißt
iobrokerDB
, z. B.:GRANT ALL PRIVILEGES ON iobrokerDB to 'iobroker'@'ip.adresse.pi'; oder GRANT ALL PRIVILEGES ON iobrokerDB to 'iobroker'@'raspberrypi.fritz.box';
Steht aber alle in den Dokumentationen zum eingesetztem Datenbankmanager
VG
Bernd -
@dp20eic
Besten Dank für den Hinweis! Es lag tatsächlich an den Rechten der Datenbank. Sehr eigenartig, da ich tatsächlich daran nichts verändert habe. Ich habe einfach die bestehenden User-Rechte nochmal über "phpMyAdmin" bestätigt, ohne irgendwelche Änderungen durchzuführen. Es war nur irritierend, da ich vom Raspberry 2 auf den Raspberry 4 gewechselt bin (Daher die beiden unterschiedlichen IP Adressen für den raspberry, der Alte war nicht mehr im Netzwerk aktiv). Aus diesem Grund war meine Vermutung es läge ein Problem mit der ioBroker Installation des neuen Raspberry 4 vor.
Nochmal besten Dank für den Hinweis!!
-
@tobi6a sagte in SQL Adapter - Zugriff auf externe Datenbank:
Es war nur irritierend, da ich vom Raspberry 2 auf den Raspberry 4 gewechselt bin
Moin,
nur kurz, das solltest Du Dir dann lieber in der offiziellen Dokumentation des Datenbankmanagers nachlesen.
Hättest Du bei der Berechtigung des Users (Grant) es so angegeben, dann hätte es keine Rolle gespielt, von welchem Rechner der User zugreift.
An meinem Beispiel:GRANT ALL PRIVILEGES ON iobrokerDB to 'iobroker'@'%';
VG
Bernd -
@tobi6a Das geht auch ohne Sql Adapter z.b. über myscl Bibliotek
und Javascript.0. Adapter