vdr-epg2vdr: Compilieren schlägt mit VDR 2.6 fehl

  • Stimmt das hatte ich nicht mehr auf dem Schirm, das sollte UTF8 sein:


    mariadb.conf.d/50-server.cnf

    character-set-server = utf8mb4

    collation-server = utf8mb4_general_ci


    mariadb.conf.d/50-client.cnf

    default-character-set = utf8mb4

  • Ich mußte bei meiner Distro (gentoo) noch


    Code
    plugin_dir                                      = /usr/lib64/mysql/plugin

    für mysqlepglv.so setzen.


    Bei "mysql_update" und "mariadb-update" bekomme ich


    Code
    Error : Unknown column 'information_schema.INNODB_METRICS.STATUS' in 'field list' Error : View 'sys.metrics' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them

    Kann das bleiben? Kann man das fixen? Besser mariadb neu einrichten (ohne update von bestehenden mysql dbs)? Oder benötige ich eines oder mehrere useflags aus innodb-lz4, innodb-lzo oder innodb-snappy?

  • Nicht gleich hauen =O
    Bin auf einen Ubuntu server unterwegs und verwende Mariadb, muss ich noch was nach installieren ?

    VDR 4: AMD Kabini 5310, Asrock AM1H-ITX, Gen2Vdr V6, Cine S2, Atric , Harmony 515 , Streacom ST-F7CB EVO

  • Ich habe jetzt mit ganz neuen /var/lib/mysql angefanden, um den innodb Fehler weg zubekommen. Und mit "epgd-tool -new-db && epgd-tool -new-u" alles neu erzeugt. Leider geht jetzt gar nichts mehr: der epgd loopt beim start mit:


    Was übersehe ich? :(


    EDIT: binary logging wird mit skip-bin-log ausgeschaltet - und nicht durch auskommentieren von bin-log.

  • Sieht aus wie ein typo.

    interessant, bei Ubuntu gibt es beides:


    Code
    root@gate (master u=) ~/build/PLUGINS/vdr-plugin-epg2vdr> which mariadb-config  
    /usr/bin/mariadb-config
    root@gate (master u=) ~/build/PLUGINS/vdr-plugin-epg2vdr> which mariadb_config   
    /usr/bin/mariadb_config

    dann stelle ich es auf die Version mit dem Unterstrich um.

  • Ich habe jetzt mit ganz neuen /var/lib/mysql angefanden, um den innodb Fehler weg zubekommen. Und mit "epgd-tool -new-db && epgd-tool -new-u" alles neu erzeugt. Leider geht jetzt gar nichts mehr: der epgd loopt beim start mit:

    Code
    Jan  3 22:45:16 adler epgd: SQL-Error in 'executeSqlFile()' - This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable) (1418)
    Jan  3 22:45:16 adler epgd: Using scraping language de
    Jan  3 22:45:16 adler epgd: TVDB scraper connected
    Jan  3 22:45:16 adler epgd: MOVIEDB scraper connected
    Jan  3 22:45:16 adler epgd: Info: No external events on database, force initial check!
    Jan  3 22:45:16 adler epgd: Retry #4 failed, retrying in 60 seconds!
    Jan  3 22:45:16 adler epgd: Closing mysql connection and calling mysql_thread_end(807102)

    Was übersehe ich? :(


    EDIT: binary logging wird mit skip-bin-log ausgeschaltet - und nicht durch auskommentieren von bin-log.

    laut dem log ist das binariy logging noch an, dann geht das nicht

  • Sollte das Entfernen der mysql Abhängigkeiten nicht auch in scraper2vdr vorgenommen werden?

    ich glaube der Entwickler ist nicht mehr aktiv am VDR Projekt, ich kann es mir mal anschauen hab von damals Rechte am git.

  • Ich mußte bei meiner Distro (gentoo) noch

    Code
    plugin_dir                                      = /usr/lib64/mysql/plugin

    für mysqlepglv.so setzen.
    Bei "mysql_update" und "mariadb-update" bekomme ich

    Code
    Error : Unknown column 'information_schema.INNODB_METRICS.STATUS' in 'field list' Error : View 'sys.metrics' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them

    Kann das bleiben? Kann man das fixen? Besser mariadb neu einrichten (ohne update von bestehenden mysql dbs)? Oder benötige ich eines oder mehrere useflags aus innodb-lz4, innodb-lzo oder innodb-snappy?

    Wo musstest du das eintragen?
    m.E. sollte man überall das aktuelle Plugin Dir des MariiaDb Servers so abfragen können:

    Code
    wendel@gate {master u=} ~/build/epgd> mariadb_config --plugindir
    /usr/lib/x86_64-linux-gnu/libmariadb3/plugin

    Das wird dann im Makefile von mysqlepglv berücksichtigt.


    Und wo bzw. von was kommt die Fehlermeldung?

  • Genau, das muss wie im README beschrieben manuell gemacht werden da man dazu DB Admin sein muss.

    Zu dem Skript epgd-tool kann ich nicht viel sagen, das hat 3po geschrieben und mich gebeten es ins git zu übernehmen - hat aber damals immer funktioniert.

  • Anpassung auf mariadb_config mit Unterstrich ist im git

  • Ja, binary logging war das Problem: "skip-bin-log" schaltet das binary logging in mariadb ab. "#bin-log" (also einfach auskommentieren) läßt binary-logging aktiv. Besonders gemein: das schlägt nur bei einem epgd first run auf die leere db zu - deshalb habe ich es mit der geupdateten db zuerst nicht gemerkt. (Siehe EDIT in ursprünglicher Nachricht.)


    Das plugin_dir mußte ich angeben, als ich versehentlich die alte epgd Version gebaut habe (Änderungen gefetched, aber nicht ausgechecked...).


    So, aus den vdr plugins ist nichts mehr gegen libmysqlclient gelinkt:


    Code
    ingo@adler /usr/local/src/VDR $ ldd /usr/lib64/vdr/plugins/libvdr-* |grep -e mariadb -e mysql
            libmariadb.so.3 => /usr/lib64/libmariadb.so.3 (0x00007fb04e308000)
            libmariadb.so.3 => /usr/lib64/libmariadb.so.3 (0x00007fa0ccba8000)
    ingo@adler /usr/local/src/VDR $

    Scheint alles gut zu laufen. Danke horchi!


    EDIT:

    Nachdem ich die Abhängigkeiten zu libmysqlclient los war, habe ich (für andere Pakete) libmysqlclient auf 8.x geupdated. Ich habe auf meinem System also

    Code
    /usr/include/mariadb/mysql.h
    /usr/include/mysql/mysql.h

    Um sicher zu stellen, dass /usr/include/mariadb/mysql.h und nicht /usr/include/mysql/mysql.h inkludiert wird, benötige ich noch

    Das fiel mir nur auf, weil nach dem libmysqlclient-Update, der my_bool Fehler hoch poppte - solange ich die alte libmysqlclient-Version (5.x oder 6.x) hatte fiel das gar nicht auf.


    Ich denke, dass man das include konditional (je nachdem, ob mysql oder mariadb benutzt wird) gesetzt werden muss.


    Herzlichen Dank für Deine Arbeit an den Quellen und Deinen Support.

  • skip-bin-log habe ich hier (mariadb-server 10.5) noch nicht aktivieren müssen, guter Hinweis für das nächste Update.


    Mit #include <mariadb/mysql.h> baut es definitiv nicht mehr mit mysql, daher möchte ich das ungern übernehmen.


    Es sollte via dem Makefile bereits das richtige verwendet werden:

    Code
    root@gate/etc/mysql> mariadb_config --include
    -I/usr/include/mariadb -I/usr/include/mariadb/mysql

    da der Header noch an anderen Stellen so eingebunden wird scheint das ja generell zu klappen. Klappt das bei die speziell bei dem epglv nicht?
    epglv/Makefile ist bei dir aktuell und es steht das drin?:

    Code
    CPP_FLAGS := $(CPP_FLAGS_$(ARCH)) -Wall \
    -fPIC \
    -I/usr/local/include/mysql \
    -L/usr/lib/mysql \
    -L/usr/local/lib/mysql \
    -I/usr/include/mysql \
    $(shell $(SQLCFG) --libs) \
    $(shell $(SQLCFG) --include) \
    -DMYSQL_DYNAMIC_PLUGIN \
    -DDEBUG_MYSQL=0
  • Ich glaube das Problem ist Zeile 6 bei den flags: Compiler options sind last match - aber der Preprocessor hat bei den Includes first match. Können die Zeilen 4 -6 nicht weg, wenn die Zeilen 7 und 8 greifen?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!