FHEM Forum

FHEM => Sonstiges => Thema gestartet von: TWART016 am 26 Juni 2020, 03:26:12

Titel: [gelöst] configDB caching_sha2_password
Beitrag von: TWART016 am 26 Juni 2020, 03:26:12
Hallo,

ich bin gerade dabei configDB einzurichten. Ich bekomme über ssh folgenden Fehler:
root@fhem-neu:/opt/fhem# perl fhem.pl configDB
DBI connect('database=fhem;host=192.168.178.15;port=3306','fhemuser',...) failed: Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection. at configDB.pm line 704.



Mit configdb migrate in FHEM bekomme ich sofort im Browser die Meldung:
This page isn't working192.168.178.186 didn't send any data.
ERR_EMPTY_RESPONSE


Die Datei habe ich angelegt: /opt/fhem/configDB.conf

%dbconfig= (
    connection => "mysql:database=fhem;host=192.168.178.15;port=3306",
    user => "fhemuser",
    password => "fhempassword",
    # optional enable(1) / disable(0) UTF-8 support (at least V 4.042 is necessary)
    utf8 => 1
);


list
Internals:
   COLUMNS    field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
   CONFIGURATION ./configDB.conf
   DEF        ./configDB.conf .*:.*
   FUUID      5ef54aeb-f33f-f816-661b-c9d9f748cdb6a0f4
   FVERSION   93_DbLog.pm:v4.10.2-s22246/2020-06-23
   MODE       synchronous
   MODEL      MYSQL
   NAME       logdb
   NR         14
   NTFY_ORDER 50-logdb
   PID        1225
   REGEXP     .*:.*
   STATE      DBI connect('database=fhem;host=192.168.178.15;port=3306','fhemuser',...) failed: Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection. at ./FHEM/93_DbLog.pm line 3018.

   TYPE       DbLog
   UTF8       1
   dbconn     mysql:database=fhem;host=192.168.178.15;port=3306
   dbuser     fhemuser
   HELPER:
     COLSET     1
     DEVICECOL  64
     EVENTCOL   512
     OLDSTATE   DBI connect('database=fhem;host=192.168.178.15;port=3306','fhemuser',...) failed: Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection. at ./FHEM/93_DbLog.pm line 3018.

     PACKAGE    main
     READINGCOL 64
     TC         current
     TH         history
     TYPECOL    64
     UNITCOL    32
     VALUECOL   128
     VERSION    4.10.2
   Helper:
     DBLOG:
       state:
         logdb:
           TIME       1593134528.15599
           VALUE      DBI connect('database=fhem;host=192.168.178.15;port=3306','fhemuser',...) failed: Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection. at ./FHEM/93_DbLog.pm line 3018.

   READINGS:
     2020-06-26 01:25:13   state           DBI connect('database=fhem;host=192.168.178.15;port=3306','fhemuser',...) failed: Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection. at ./FHEM/93_DbLog.pm line 3018.

Attributes:
Titel: Antw:configDB caching_sha2_password
Beitrag von: betateilchen am 26 Juni 2020, 11:23:59
Du versuchst, eine configDB Konfiguration mit einem DbLog device zu vewenden.

configDB und DbLog sind zwei komplett voneinander unabhängige Dinge!

Bist Du Dir sicher, dass Du verstanden hast, was Du eigentlich wirklich tun willst?
Titel: Antw:configDB caching_sha2_password
Beitrag von: TWART016 am 26 Juni 2020, 19:22:36
Das habe ich schon verstanden. DBLog ist für die Logs, dbconfig Ersatz für die fhem.cfg.

In dem Beitrag steht kein Server, auf dem ich meine SQL eintragen soll:
https://forum.fhem.de/index.php/topic,54055.0.html

In der commandref steht zumindest das:
#%dbconfig= (
# connection => "mysql:database=configDB;host=db;port=3306",
# user => "fhemuser",
# password => "fhempassword",
#);



Edit: Ich habe noch keine Anleitung gefunden, in der alle Schritte gut erklärt sind.
Titel: Antw:configDB caching_sha2_password
Beitrag von: betateilchen am 26 Juni 2020, 20:14:14
Zitat von: TWART016 am 26 Juni 2020, 19:22:36
In dem Beitrag steht kein Server, auf dem ich meine SQL eintragen soll:

Abgesehen davon, dass ich den Satz inhaltlich nicht verstehe (auf welchem Server willst Du was eintragen?), kann ich DIr zu dem zitierten Forum-Thread sagen:

Der Workshop sollte möglichst wenig Zutun des Anwenders erfordern, deshalb wird dort die configDB mit sqlite3 eingerichtet.
Für diese Konstellation ist in der 5-Schritte-Anleitung alles enthalten, was benötigt wird, damit das angegebene Beispiel funktioniert.

Wenn man verstanden hat, wie das prinzipiell funktioniert und die Absicht hat, eine andere Datenbank anstatt sqlite3 einzusetzen, liegt die geistige Transferleistung für die Konfiguration der Datenbankverbindung beim Anwender.

Und in der commandref ist - wie Du selbst bemerkt hast - das Ganze etwas ausführlicher beschrieben. Die commandref ist für mich die einzige "Quelle der Wahrheit", da ich als zuständiger Entwickler ausschließlich diese Dokumentation pflege.




Trotzdem habe ich noch keinen blassen Schimmer, warum Du im ersten Beitrag das list eines DbLog devices einfügst, das eine Konfigurationsdatei benutzt, welche (dem Namen nach) für configDB bestimmt sein sollte.

Die Fehlermeldung


Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection


deutet für mich eher auf ein Problem in Deiner MySQL Umgebung hin.
Titel: Antw:configDB caching_sha2_password
Beitrag von: TWART016 am 27 Juni 2020, 01:23:02
Meine configDB.conf sieht nun so aus.
%dbconfig= (
connection => "mysql:database=fhem;host=192.168.178.15;port=3306",
user => "fhemuser",
password => "fhempassword"
);


Dieser Schritt ist für eine neue Installation:
Diesen Fehler erhalte ich:
root@fhem-neu:/opt/fhem# perl fhem.pl configDB
2020.06.26 22:47:37 1: Can't locate configDB.pm in @INC (you may need to install the configDB module) (@INC contains: . /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.30.0 /usr/local/share/perl/5.30.0 /usr/lib/x86_64-linux-gnu/perl5/5.30 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.30 /usr/share/perl/5.30 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at (eval 13) line 1.
BEGIN failed--compilation aborted at (eval 13) line 1.

Undefined subroutine &main::cfgDB_Init called at fhem.pl line 573.



Bei der Migration mit configdb migrate kommt:
Unknown command configdb, try help.

Ich sehe in der commandref kein define, wo ich die conf angeben kann.

Ich habe bereits eine Datenbank fhem erstellt. Der Benutzer hat alle Rechte.

P.S. mir ist bekannt, dass ich nur eine Methode benötige.
Titel: Antw:configDB caching_sha2_password
Beitrag von: amenomade am 27 Juni 2020, 01:44:48
Zitat von: CommandRefIMPORTANT:


    This file must be named "configDB.conf"
    This file must be located in the same directory containing fhem.pl and configDB.pm, e.g. /opt/fhem
Deswegen gibt es nirgendwo eine Stelle, wo man "die conf angeben kann"

Mach mal ein ls -la /opt/fhem

Wie hast Du deine database=fhem in mySQL initialisiert?

Letztens: mir ist unklar, ob Du ein neues Fhem unter configDB einrichten willst, oder deine existierende migrieren willst. Bei einer Migration muss man noch mit fhem.cfg und erst dann configdb migrate benuzen.

Titel: Antw:configDB caching_sha2_password
Beitrag von: TWART016 am 27 Juni 2020, 01:56:49
Zitat von: amenomade am 27 Juni 2020, 01:44:48
Mach mal ein ls -la /opt/fhem
root@fhem-neu:/opt/fhem# ls -la /opt/fhem
total 740
drwxrwxrwx 10 fhem dialout   4096 Jun 26 22:50 .
drwxr-xr-x  3 root root      4096 Jun 26 00:27 ..
-rw-r--r--  1 fhem dialout 344177 Jun 26 00:33 CHANGED
-rw-rw-r--  1 fhem dialout    130 Jun 26 22:36 configDB.conf
-rw-rw-r--  1 fhem dialout  18432 Jun 26 17:17 configDB.db
drwxrwxrwx 46 fhem dialout  20480 Jun 26 00:32 contrib
drwxrwxrwx  3 fhem dialout   4096 Jun 26 00:32 demolog
drwxrwxrwx  4 fhem dialout  12288 Jun 26 00:32 docs
drwxrwxrwx  6 fhem dialout  69632 Jun 26 22:35 FHEM
-rw-rw-rw-  1 fhem dialout   1037 Jun 26 23:24 fhem.cfg
-rw-rw-rw-  1 fhem dialout  25544 Jan 26 13:14 fhem.cfg.demo
-rwxrwxrwx  1 fhem dialout 163715 Jun 26 00:33 fhem.pl
drwxr-xr-x  3 fhem dialout   4096 Jun 26 00:33 lib
drwxrwxrwx  2 fhem dialout   4096 Jun 26 00:32 log
-rw-rw-rw-  1 fhem dialout  42396 Jun 26 00:33 MAINTAINER.txt
-rw-r--r--  1 fhem dialout   1024 Jun 26 01:23 .nano.swp
-rw-rw-rw-  1 fhem dialout    935 Jan 26 13:14 README_DEMO.txt
drwxr-xr-x  4 fhem dialout   4096 Jun 26 01:11 restoreDir
drwxrwxrwx  8 fhem dialout   4096 Jun 26 00:27 www


Zitat von: amenomade am 27 Juni 2020, 01:44:48
Wie hast Du deine database=fhem in mySQL initialisiert?
So habe ich die Datenbank angelegt. Welche Tabellen benötige ich denn?

Zitat von: amenomade am 27 Juni 2020, 01:44:48
Letztens: mir ist unklar, ob Du ein neues Fhem unter configDB einrichten willst, oder deine existierende migrieren willst. Bei einer Migration muss man noch mit fhem.cfg und erst dann configdb migrate benuzen.
Am liebsten möchte ich beides hinbekommen. Welcher Weg es wird ist mir erstmal egal.
Titel: Antw:configDB caching_sha2_password
Beitrag von: amenomade am 27 Juni 2020, 02:02:19
Da fehlt dir configDB.pm
Kann nicht funktionieren.

In des DB musst Du keine Tabelle anlegen, die werden automatisch angelegt.

Ich wollte nur wissen, was Du mit Usern und Passwörter gemacht hast.

Letztens: kannst Du dich mit dem connectionstring auch vom Shell aus einloggen?
Titel: Antw:configDB caching_sha2_password
Beitrag von: amenomade am 27 Juni 2020, 02:07:55
Zitat von: amenomade am 27 Juni 2020, 02:02:19

Letztens: kannst Du dich mit dem connectionstring auch vom Shell aus einloggen?

Also, damit meine ich:

mysql -h 192.168.178.15 -P 3306 -u fhemuser -pfhempassword -D fhem

(ACHTUNG: kein Leerzeichen zwischen -p und fhempassword)
Titel: Antw:configDB caching_sha2_password
Beitrag von: TWART016 am 27 Juni 2020, 02:24:35
Zitat von: amenomade am 27 Juni 2020, 02:02:19
Da fehlt dir configDB.pm
und wo ist die? In contrib ist nichts.

Zitat von: amenomade am 27 Juni 2020, 02:07:55
Also, damit meine ich:

mysql -h 192.168.178.15 -P 3306 -u fhemuser -pfhempassword -D fhem

(ACHTUNG: kein Leerzeichen zwischen -p und fhempassword)
Damit komme ich in die mysql command line

Bei meiner SQL hatte ich auf Port 33061 gewechselt, habe das auch in der .conf angepasst
Titel: Antw:configDB caching_sha2_password
Beitrag von: amenomade am 27 Juni 2020, 04:00:03
Zitat von: TWART016 am 27 Juni 2020, 02:24:35
und wo ist die? In contrib ist nichts.
Die kommt ganz normal per update direkt in /opt/fhem

Machmal ein update check
Du solltest die sehen.



Titel: Antw:configDB caching_sha2_password
Beitrag von: betateilchen am 27 Juni 2020, 10:11:18
Zitat von: amenomade am 27 Juni 2020, 02:02:19
Da fehlt dir configDB.pm

nicht nur das... es fehllt noch mehr:

Zitat
Unknown command configdb, try help.

da fehlt offenbar auch die 98_configdb.pm.

Wie alt ist eigentlich die FHEM-Installation?
Titel: Antw:configDB caching_sha2_password
Beitrag von: betateilchen am 27 Juni 2020, 10:25:04
Das ist übrigens interessant, im ersten Beitrag wird eine Fehlermeldung zitiert

DBI connect('database=fhem;host=192.168.178.15;port=3306','fhemuser',...) failed: .... at configDB.pm line 704.


die darauf hindeutet, dass zu diesem Zeitpunkt die configDB.pm noch an der richtigen Stelle gewesen sein muss.
Was ist zwischenzeitlich passiert? Wer hat die jetzt fehlenden Dateien warum entfernt/gelöscht?
Titel: Antw:configDB caching_sha2_password
Beitrag von: amenomade am 27 Juni 2020, 11:02:31
Zitat von: betateilchen am 27 Juni 2020, 10:25:04
Das ist übrigens interessant, im ersten Beitrag wird eine Fehlermeldung zitiert

DBI connect('database=fhem;host=192.168.178.15;port=3306','fhemuser',...) failed: .... at configDB.pm line 704.


die darauf hindeutet, dass zu diesem Zeitpunkt die configDB.pm noch an der richtigen Stelle gewesen sein muss.
Was ist zwischenzeitlich passiert? Wer hat die jetzt fehlenden Dateien warum entfernt/gelöscht?

Ich vermute, er redet von 2 Installationen: eine existierende, die er nach mysql migrieren will, und eine neue, die er sofort mit mysql betreiben will. Deswegen meine obige Frage:

Zitat von: amenomade am 27 Juni 2020, 01:44:48
Letztens: mir ist unklar, ob Du ein neues Fhem unter configDB einrichten willst, oder deine existierende migrieren willst. Bei einer Migration muss man noch mit fhem.cfg und erst dann configdb migrate benuzen.

Anwort:
ZitatAm liebsten möchte ich beides hinbekommen. Welcher Weg es wird ist mir erstmal egal.
Wenn man die Prompts guckt, kriegt man auch einen Hinweis
Zitatroot@fhem-neu:/opt/fhem#
Titel: Antw:configDB caching_sha2_password
Beitrag von: TWART016 am 27 Juni 2020, 12:37:22
Ich hatte vorgestern installiert und alle Updates gemacht. Trotzdem wird die Datei erst jetzt angezeigt.
Downloading https://fhem.de/fhemupdate/controls_fhem.txt
List of new / modified files since last update:
UPD ./CHANGED
UPD ./configDB.pm
UPD ./fhem.pl
UPD FHEM/00_MQTT2_CLIENT.pm
UPD FHEM/10_FBDECT.pm
UPD FHEM/49_SSCam.pm
UPD FHEM/49_SSCamSTRM.pm
UPD FHEM/76_SMAPortal.pm
UPD FHEM/98_JsonList2.pm
UPD FHEM/lib/AttrTemplate/mqtt2.template
UPD www/pgm2/fhemweb.js

New entries in the CHANGED file:
- change:  76_SMAPortal: imptove cookie/login management
- feature: 49_SSCam / 49_SSCamSTRM: new capability operate PTZ Zoom cameras



Wenn ich fhem neu installiere macht es vermutlich keinen Unterschied ob die die Daten migriere oder von neu anfange.

Jetzt wurden die Tabellen in der DB erfolgreich angelegt. Jedoch speichert fhem die config nach wie vor in der cfg und nicht in der DB, trotz
perl fhem.pl configDB


Wie kann ich mit save dauerhaft die DB nutzen?
Titel: Antw:configDB caching_sha2_password
Beitrag von: amenomade am 27 Juni 2020, 12:48:30
Kannst Du bitte genauer beschreiben, was Du gemacht hast?

Vorhandene Installation migriert (durch start mit fhem.cfg, dann configdb migrate, beenden OHNE save und erst dann mit configDB gestartet?

Oder ganz neue Installation mit leerer Datenbank und einfachem Start mit configDB?

Also, Schritt für Schritt:
1. Datenbank angelegt und Rechte zugewiesen
2. ... dann?

EDIT: übrigens, hast Du jetzt mittlerweile auch 98_configdb.pm in /opt/fhem/FHEM ? Das sieht man mit deinem update nicht.
Titel: Antw:configDB caching_sha2_password
Beitrag von: betateilchen am 27 Juni 2020, 13:00:53
Zitat von: TWART016 am 27 Juni 2020, 12:37:22
Wie kann ich mit save dauerhaft die DB nutzen?

FHEM einmal komplett beenden und im Startskript dafür sorgen, dass FHEM künftig mit dem Parameter "configDB" anstatt "fhem.cfg" gestartet wird.
Titel: Antw:configDB caching_sha2_password
Beitrag von: TWART016 am 27 Juni 2020, 13:08:38
Für eine neue Config habe ich folgende Schritte durchgeführt.

Datenbank in MySQL anlegen:
CREATE DATABASE `fhem` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'fhemuser'@'%' IDENTIFIED BY 'fhempassword';
GRANT SELECT, INSERT, DELETE, UPDATE ON `fhem`.* TO 'fhemuser'@'%';


ssh:
service fhem stop
perl fhem.pl configDB


Nach einem Server reboot wird jedoch wieder die cfg verwendet.

98_configdb.pm in /opt/fhem/FHEM ist nun enthalten.
Titel: Antw:configDB caching_sha2_password
Beitrag von: betateilchen am 27 Juni 2020, 16:16:42
Zitat von: TWART016 am 27 Juni 2020, 13:08:38
Nach einem Server reboot wird jedoch wieder die cfg verwendet.

Das ist doch logisch. Daran wird sich solange nichts ändern, solange Du meinen wichtigen Hinweis

Zitat von: betateilchen am 27 Juni 2020, 13:00:53
im Startskript dafür sorgen, dass FHEM künftig mit dem Parameter "configDB" anstatt "fhem.cfg" gestartet wird.

einfach weiterhin ignorierst.

Die (dauerhafte) Änderung musst Du in der Datei /etc/systemd/system/fhem.service vornehmen, denn das ist das Startskript.
Darin sind beide Startvarianten vorbereitet und Du musst sie nur "umschalten". Also die jetzt aktive Zeile kommentieren und das Kommentarzeichen vor der Zeile mit configDB entfernen.

Ist das denn so schwierig?
Titel: Antw:configDB caching_sha2_password
Beitrag von: TWART016 am 28 Juni 2020, 01:02:30
Hat nach dem Ändern des Services funktioniert. Habe davon nicht in der commandref gesehen.

Vielen Dank für die Hilfe.
Titel: Antw:configDB caching_sha2_password
Beitrag von: betateilchen am 28 Juni 2020, 11:23:23
Zitat von: TWART016 am 28 Juni 2020, 01:02:30
Habe davon nicht in der commandref gesehen.

Das muss auch nicht in der commandref stehen, da es nichts FHEM- oder gar configDB-spezifisches ist. Das Verwalten, Starten und Stoppen von Services fallen in den Bereich Linux-Kenntnisse und findet auf Betriebssystemebene statt.

Der Hinweis auf die notwendige Anpassung des Startskripts steht aber ausdrücklich im Umstiegs-Workshop, den Du ja oben schon mehrfach ins Feld geführt hast.
Dort steht geschrieben:

Zitat
Hinweis: Um die Änderung permanent zu machen, also dafür zu sorgen, dass auch nach einem reboot mit der configDB gearbeitet wird, muss im Startskript von fhem ... die entsprechende Startoption ausgewählt und die bisherige auskommentiert werden. Das Feature ist im Startskript bereits enthalten und dokumentiert.