Hi,
durch einen Konfigfehler in meinem Docker habe ich mysql auf 9 geupgraded.
Nun ist native sql password nicht mehr unterstützt und man muss auf sha2 gehen.
sprich in der DB den user editieren.
Gesagt getan
nun muss aber um sha2 nutzen zu können die Verbindung zu mysql aber auch secure hergestellt werden.
Ist das möglich?
Wenn ja wie?
Oder habe ich eine andere Möglichkeit es wieder lauffähig zu bekommen?
Man stelle sich vor, die Frage wäre im richtigen Unterforum zu DbLog gestellt... ein Träumchen.
Hi, ich bin nun extra nochmal 2mal durch die index Seite gescrollt - finde keins. Welches meinst du? :-[
oder einfach mal im Forum nach "dblog sha2" suchen.
https://forum.fhem.de/index.php?topic=125765.msg1203796#msg1203796
der Beitrag hinter dem Link funktioniert leider nicht mit mysql9. Dort ist native password nicht mehr verfügbar:
https://dev.mysql.com/doc/refman/9.0/en/caching-sha2-pluggable-authentication.html
Die Suche hatte ich (leider) schon bemüht.
Welchen Client nutzt denn FHEM bei der connection. Vllt. kann ich da ansetzen und etwas an Parametern mitgeben?!
Mit dem OS mysql komm ich ran:
root@fhem-prod:~# mysql -h 192.168.0.146 -u user -ppassword
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4049
Server version: 9.0.1 MySQL Community Server - GPL
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> select * from fhem.history limit 10
->
-> ;
+---------------------+----------------------+--------------+-------------------------+------------------+---------+------+
| TIMESTAMP | DEVICE | TYPE | EVENT | READING | VALUE | UNIT |
+---------------------+----------------------+--------------+-------------------------+------------------+---------+------+
| 2022-11-13 23:00:15 | MQTT2_SP111_03 | MQTT2_DEVICE | ENERGY_Today: 0.016 | ENERGY_Today | 0.016 | |
| 2022-11-13 23:00:15 | MQTT2_SP111_03 | MQTT2_DEVICE | ENERGY_Total: 100.892 | ENERGY_Total | 100.892 | |
| 2022-11-13 23:00:15 | MQTT2_SP111_03 | MQTT2_DEVICE | ENERGY_Yesterday: 0.039 | ENERGY_Yesterday | 0.039 | |
| 2022-11-13 23:00:43 | Heizung_Mats_Weather | CUL_HM | measured-temp: 15.5 | measured-temp | 15.5 | |
| 2022-11-13 23:00:43 | Heizung_Mats_Weather | CUL_HM | state: 15.5 | state | 15.5 | |
| 2022-11-13 23:18:13 | Heizung_Mats_Weather | CUL_HM | measured-temp: 15.3 | measured-temp | 15.3 | |
| 2022-11-13 23:18:13 | Heizung_Mats_Weather | CUL_HM | state: 15.3 | state | 15.3 | |
| 2022-11-13 23:20:02 | global | GLOBAL | SAVE | state | SAVE | |
| 2022-11-13 23:20:15 | MQTT2_SP111_03 | MQTT2_DEVICE | ENERGY_Total: 100.892 | ENERGY_Total | 100.892 | |
| 2022-11-13 23:20:15 | MQTT2_SP111_03 | MQTT2_DEVICE | ENERGY_Today: 0.016 | ENERGY_Today | 0.016 | |
+---------------------+----------------------+--------------+-------------------------+------------------+---------+------+
10 rows in set (0.01 sec)
mysql>
merkwürdig. Nachdem ich über die commandline einmalig ne Verbindung + Abfrage aufgebaut habe, funktioniert es genau zu de Zeitpunkt im fhem-log.
Vermutlich wurden irgendwelche rsa keys ausgetauscht habe ich so verstanden.
Ich werde rebooten und mal testen.
Funktioniert nun alles.
zu früh gefreut.
Nach Reboot des mysql dockers wieder keine Verbindung möglich
Zitat von: masterpete23 am 31 Juli 2024, 16:23:30Welchen Client nutzt denn FHEM bei der connection.
Hast Du doch selbst installiert: das perl Modul DBD::mysql
Ok.
denkt ihr / weiß wer, ob man ssl mitgeben kann?
Wenn ja über welches config file? - das konnte ich noch nicht finden für DBD::mysql bei fhem bzw. bin mir nicht ganz sicher, wenn ich mir hier so den connection aufbau anschaue.
Vermutlich ist es ja das db.conf - nur das Format ist "anders"
$dbh = DBI->connect(
"DBI:mysql:database=test;host=localhost",
"",
"",
{ RaiseError => 1, AutoCommit => 1, mysql_server_prepare => 1 }
);
laut https://metacpan.org/pod/DBD::mysql#mysql_ssl und https://metacpan.org/pod/DBD::mysql#mysql_server_pubkey ist ja etwas möglich
Wenn jemand weiterhelfen kann, würde ich mich freuen