FHEM - Hausautomations-Systeme > Unterstützende Dienste

configdb und MariaDB 10.3.x unter Debian Buster

(1/2) > >>

budy:
Moin,

ich hatte am Wochenende mal versucht meine alte Debian Stretch, auf der mein FHEM läuft, auf Buster zu aktualisieren. Leider funktionierte anschließend der Login zu meiner MariaDB nicht mehr, weil sich offenbar etwas an der API der MySQL Perl Lib geändert hat. Hat da jemand einen Tipp? Kann ich ggf. die MariaDB 10.1 unter Stretch irgendwie pinnen, dass sie nicht aktualisiert wird? Oder gibt es ggf. eine andere Lösung?

Gruß,
budy

CoolTux:
Magst Du uns bitte einmal die Fehlermeldung geben?

budy:
Kann ich grad nicht, weil ich das natürlich zurück gebaut habe, aber ich werde das mal auf einem Klon meiner VM nochmal nachstellen. Melde mich später nochmal dazu, wenn ich das gemacht habe…

budy:
Puhh… ich konnte das auf dem Klon meiner VM nicht nochmal nachvollziehen. Ich werde das heute Abend nochmal auf meiner eigentlichen VM machen.

budy:
Ahh… jetzt kann ich das auf beiden VMs reproduzieren. Wenn ich nach dem fälligen apt dist-upgrade versuche FHEM zu starten, dann bekomme ich folgende Meldung:


--- Code: ---root@fhem:/home/fhem/fhem# /usr/bin/perl /home/fhem/fhem/fhem.pl configDB
2022.12.09 18:39:33 1: PERL WARNING: DBD::mysql::st execute failed: Unknown MySQL error at configDB.pm line 365.
DBD::mysql::st execute failed: Unknown MySQL error at configDB.pm line 365.
2022.12.09 18:39:33 1: PERL WARNING: Issuing rollback() due to DESTROY without explicit disconnect() of DBD::mysql::db handle database=configDB;host=10.10.0.244;port=3306 at configDB.pm line 365.
--- Ende Code ---

Der Code aus dem Modul versucht dort aus der DB zu lesen:


--- Code: ---# read attributes
sub cfgDB_AttrRead {
        my ($readSpec) = @_;
        my ($row, $sql, @line, @rets);
        my $fhem_dbh = _cfgDB_Connect;
        my $uuid = $fhem_dbh->selectrow_array('SELECT versionuuid FROM fhemversions WHERE version = 0');
        $sql = "SELECT * FROM fhemconfig WHERE COMMAND = 'attr' AND DEVICE = '$readSpec' AND VERSIONUUID = '$uuid'";
        $sql = "SELECT * FROM fhemconfig WHERE COMMAND = 'attr' AND (DEVICE = 'global' OR DEVICE = 'configdb') and VERSIONUUID = '$uuid'"
                                        if($readSpec eq 'global');
        my $sth = $fhem_dbh->prepare( $sql );
        $sth->execute();
        while (@line = $sth->fetchrow_array()) {
                if($line[1] eq 'configdb') {
           $configDB{attr}{$line[2]} = $line[3];
                } else {
                        push @rets, "attr $line[1] $line[2] $line[3]";
                }
        }
        $fhem_dbh->disconnect();
        return @rets;
}
--- Ende Code ---

Nach dem Update auf Buster, vor dem apt dist-upgrade funktioniert das noch…

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln