Datenbank für epgd-Plugin unter Opensuse mit MariaDB: SQL-Error ... max key length is 767 bytes (1071)

  • Hallo zusammen,


    eben wollte ich meinen VDR um ein erweitertes EPG ausstatten. Doch mit der Datenbank klappt's nicht. Mir fielen folgende Zeilen im Log nach dem Start von epgd auf: ;(

    Code
    Dec 20 17:25:35 sam-linux-test epgd[10944]: SQL-Error in 'create index idxmovietitle on movie(movie_title);' - Specified key was too long; max key length is 767 bytes (1071)
    Dec 20 17:25:35 sam-linux-test epgd[10944]: SQL-Error in 'createIndices()' - Specified key was too long; max key length is 767 bytes (1071) '' [create index idxmovietitle on movie(movie_title);]


    Ich verwende Opensuse 13.2 und hier wird MariaDB 10.0.13 angeboten.Für einen Tipp wäre ich super dankbar!


    Grüße
    Stefan


    Das Log beim Starten von mysql bzw. MariaDB:


    Das Log beim Starten von epgd:


    locale root


    locale vdr-User


    SHOW TABLES;


    SELECT * FROM mysql.func;


    SHOW FUNCTION STATUS;


    show variables like 'innodb_file_format%';


    show variables like 'innodb_large_prefix';

  • hatten wir letztens schon mal hier im Forum mit der selben Fehlermeldung und mariadb.

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • Ja, das hatte ich auch gesehen, nur leider ging's nicht weiter mit der Lösung.
    http://www.vdr-portal.de/board…-easter-eggs/#post1222584
    UTF-8 läuft bei mir ja, oder? Wie kann ich das noch kontrollieren außer durch die Angaben im Log?

  • Hellseher? Da postest Du doch gerne eine Glaskugelpage... :D
    Im Log sieht das halt für mich nach UTF-8 aus. In mysql hatte ich das z.B. auch mal abgefragt. Jedoch keine Ahnung mehr, wie die Befehle waren. ?(


    P.s.: Locale hatte ich oben schon gepostet. Aber da ich ja Hilfe will, mache ich das hier gerne nochmal (das war jetzt nicht ironisch).


    locale


    Hier noch das epgd-Initscript. Das ist das Script aus dem Ordner contrib, ergänzt um die LC_ALL-Zeile.

  • Weil dann
    1. die gleiche Fehlermeldung kommt und
    2. die Datenbank nicht mit UTF-8 läuft

  • mysql Ver 15.1 Distrib 10.0.13-MariaDB, for Linux (x86_64) using readline 5.1

  • mysql Ver 15.1 ...


    Vermutlich ist hier das Problem, das entspricht wohl MySQL 5.6.x.


    MySQL 5.5.x konnte das noch selber korrigieren.


    Du kannst mal versuchen, ob es geht, wenn du folgendes in Deine "my.cnf" hinzufügst:


    Code
    innodb_large_prefix=on
    innodb_file_format=barracuda
    innodb_file_per_table=true


    Danach natürlich mysql neu starten. ;)

  • innodb_large_prefix=on brachte leider keine Änderung.
    Der Rest steht schon standardmäßig drin.

  • MariaDB [(none)]> SELECT @@SQL_MODE, @@GLOBAL.SQL_MODE;
    +--------------------------------------------+--------------------------------------------+
    | @@SQL_MODE | @@GLOBAL.SQL_MODE |
    +--------------------------------------------+--------------------------------------------+
    | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
    +--------------------------------------------+--------------------------------------------+
    1 row in set (0.00 sec)

  • sam-linux-test:~ # grep sql_mode /etc/my.cnf
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

  • Leider immernoch der gleiche SQL-Fehler.

  • Als "Holzhammermethode" könntest Du noch versuchen die Database Engine zu wechseln.


    Ich würde dazu wie folgt vorgehen:


    Am MySQL Promt folgendes eingeben:


    Code
    SET storage_engine=MYISAM;
    ALTER TABLE table_name ENGINE = MyISAM;


    MySQL stoppen


    Dann noch die "my.cnf" anpassen.


    Code
    default-storage-engine= MyISAM


    und MySQL wieder starten.


    Ob es funktioniert, kann ich Dir leider nicht sagen, denn das habe ich so auch noch nicht gemacht.

Jetzt mitmachen!

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