[erledigt] dblog und datenbankanbindung

Begonnen von the ratman, 30 Juni 2023, 14:37:18

Vorheriges Thema - Nächstes Thema

the ratman

hiho,

gerade bin ich dabei, eine neue nas, die auch fhem enthalten soll zu konfigurieren
system debian (installier über omv), worauf fhem direkt aufgesetzt ist (also nicht über docker)
mysql ist ein docker container

ich kriegs nicht hin, mit fhem auf die db zu connecten.
der db-user "fhem" hat derzeit quasi root-rechte.

der fehler beim testen der verbindung:
2023.06.30 14:27:19 2: DbLog logdb - ERROR: install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (you may need to install the DBD::mysql module) (@INC contains: ./FHEM/lib ./lib ./FHEM . /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.32.1 /usr/local/share/perl/5.32.1 /usr/lib/x86_64-linux-gnu/perl5/5.32 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl) at (eval 516) line 3.
Perhaps the DBD::mysql perl module hasn't been fully installed,
or perhaps the capitalisation of 'mysql' isn't right.
Available drivers: DBM, ExampleP, File, Gofer, Mem, Proxy, SQLite, Sponge.
 at ./FHEM/93_DbLog.pm line 2575.
ich hab also über cpan install DBD::mysql probiert zu installieren, dabei kommt dann in der console:
~~~bis hier hat er alles mit ok quitiert~~~

All tests successful.
Files=12, Tests=42,  4 wallclock secs ( 0.05 usr  0.02 sys +  2.58 cusr  1.20 csys =  3.85 CPU)
Result: PASS
  MATTN/Devel-CheckLib-1.16.tar.gz
  /usr/bin/make test -- OK
Running make install for MATTN/Devel-CheckLib-1.16.tar.gz
Manifying 1 pod document
Manifying 1 pod document
Installing /usr/local/share/perl/5.32.1/Devel/CheckLib.pm
Installing /usr/local/man/man1/use-devel-checklib.1p
Installing /usr/local/man/man3/Devel::CheckLib.3pm
Installing /usr/local/bin/use-devel-checklib
Appending installation info to /usr/local/lib/x86_64-linux-gnu/perl/5.32.1/perllocal.pod
  MATTN/Devel-CheckLib-1.16.tar.gz
  /usr/bin/make install  -- OK
  DVEEDEN/DBD-mysql-4.050.tar.gz
  Has already been unwrapped into directory /root/.cpan/build/DBD-mysql-4.050-0
Configuring D/DV/DVEEDEN/DBD-mysql-4.050.tar.gz with Makefile.PL
Can't exec "mysql_config": Datei oder Verzeichnis nicht gefunden at Makefile.PL line 89.

Cannot find the file 'mysql_config'! Your execution PATH doesn't seem
not contain the path to mysql_config. Resorting to guessed values!


PLEASE NOTE:

For 'make test' to run properly, you must ensure that the
database user 'root' can connect to your MySQL server
and has the proper privileges that these tests require such
as 'drop table', 'create table', 'drop procedure', 'create procedure'
as well as others.

mysql> grant all privileges on test.* to 'root'@'localhost' identified by 's3kr1t';

You can also optionally set the user to run 'make test' with:

perl Makefile.PL --testuser=username

Can't exec "mysql_config": Datei oder Verzeichnis nicht gefunden at Makefile.PL line 603.
Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
Failed to determine directory of mysql.h. Use

  perl Makefile.PL --cflags=-I<dir>

to set this directory. For details see DBD::mysql::INSTALL,
section "C Compiler flags" or type

  perl Makefile.PL --help
Warning: No success on command[/usr/bin/perl Makefile.PL INSTALLDIRS=site]
  DVEEDEN/DBD-mysql-4.050.tar.gz
  /usr/bin/perl Makefile.PL INSTALLDIRS=site -- NOT OK
Failed during this command:
 DVEEDEN/DBD-mysql-4.050.tar.gz               : writemakefile NO '/usr/bin/perl Makefile.PL INSTALLDIRS=site' returned status 512

so sieht das docker netz dazu aus:
docker network inspect ...
[
  {
    "Name": "mysql_default",
    "Id": "4886b9e02936657061ee994be33a8770661d3b4ac0c2fe5a621a4b7e071d15c3",
    "Created": "2023-06-30T13:46:08.443874996+02:00",
    "Scope": "local",
    "Driver": "bridge",
    "EnableIPv6": false,
    "IPAM": {
      "Driver": "default",
      "Options": null,
      "Config": [
        {
          "Subnet": "172.21.0.0/16",
          "Gateway": "172.21.0.1"
        }
      ]
    },
    "Internal": false,
    "Attachable": false,
    "Ingress": false,
    "ConfigFrom": {
      "Network": ""
    },
    "ConfigOnly": false,
    "Containers": {
      "49356e2771339f2df54e61f4b1dcbc7f34d091100de7b767f88a8a47fba09974": {
        "Name": "mysql-adminer-1",
        "EndpointID": "1fd7677c8e499bbf98d2c014c3de8018d4b5c1f8955bb8077f2ccd76944fd78a",
        "MacAddress": "02:42:ac:15:00:03",
        "IPv4Address": "172.21.0.3/16",
        "IPv6Address": ""
      },
      "c573d7f9cdceac7a9e34b262c1c052d0b926a49d4662252fc8ef8ed00a38b656": {
        "Name": "mysql-db-1",
        "EndpointID": "beb283e31e5278fc49dc0b942bae305e40ccb39324949dcbc8f220edec7e57c8",
        "MacAddress": "02:42:ac:15:00:02",
        "IPv4Address": "172.21.0.2/16",
        "IPv6Address": ""
      }
    },
    "Options": {},
    "Labels": {
      "com.docker.compose.network": "default",
      "com.docker.compose.project": "mysql",
      "com.docker.compose.version": "2.18.1"
    }
  }
]

END OF LINE
aja, über "adminer" komm' ich auf  die db und kann auch alles machen.

was mach' ich den wieder falsch?
→do↑p!dnʇs↓shit←

betateilchen

Cannot find the file 'mysql_config'! Your execution PATH doesn't seem
not contain the path to mysql_config. Resorting to guessed values!

Was ist denn daran missverständlich?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

the ratman

ich verstehs halt nicht, wo der fehler liegt.
mysql im docker, oder fehlt was für fhem, was ich eher vermute?

auf meiner "echten" nas gehts ja auch - gut, da rennt mysql unter win und fhem unter 'ner vm mit debian, aber da war das alles kein problem.
sprich:  mir fehlt wieder mal der ansatz ...
→do↑p!dnʇs↓shit←

betateilchen

#3
Meine Güte, es steht doch alles da...

Zitat von: the ratman am 30 Juni 2023, 14:37:182023.06.30 14:27:19 2: DbLog logdb - ERROR: install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (you may need to install the DBD::mysql module) (@INC contains: ./FHEM/lib ./lib ./FHEM . /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.32.1 /usr/local/share/perl/5.32.1 /usr/lib/x86_64-linux-gnu/perl5/5.32 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl) at (eval 516) line 3.
Perhaps the DBD::mysql perl module hasn't been fully installed

Auf dem System, auf dem FHEM läuft (!) fehlt der Datenbanktreiber.

Du schreibst, das ist ein Debian System, dann sollte man das einfach über apt nachinstallieren können.

libdbd-mysql-perl
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

the ratman

o.k. war wieder ein stolperstein ...

der dockercontainer trägt selber nicht die ports ein. ich dachte,  wenn das ding isntalliert wird (was ja auch bei allen andern container bisher der fall war), wird sowas selbsständig gemacht.

somit: thx für die hilfe!
→do↑p!dnʇs↓shit←