[gelöst] configDB caching_sha2_password

Begonnen von TWART016, 26 Juni 2020, 03:26:12

Vorheriges Thema - Nächstes Thema

TWART016

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:

betateilchen

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?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

TWART016

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.

betateilchen

#3
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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

TWART016

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.

amenomade

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.

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

TWART016

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.

amenomade

#7
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?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

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)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

TWART016

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

amenomade

#10
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.



Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

betateilchen

#11
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?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

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?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

amenomade

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#
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

TWART016

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?