Geteilte Datenbank funktioniert nicht

  • @Publish3r, kannst Du bitte mal nachschaun, was kodi bei Dir in die Tabelle version, Feld idVersion schreibt? Bei mir ist das für Music 82 und Videos 119 (hm, die Zahl auch aber auch im Tabellennamen Music82 auf,...).

    MyMusic82 und MyVideos119.

    Meine mariadb.cnf

  • Wenn man danach googelt gibt es jede Menge Treffer, z.B.

    Ok. Da sieht man das auf jeden Fall mit PHPMyAdmin. Das habe ich überlesen, dass du das verwendest.

    Und wenn kodi mit o.g. Berechtigungen eine Datenbank anlegen kann, dann können die auch nicht ganz falsch sein - nur wohl ungenügend.

    Welche Berechtigungen sollte ein MySQL-Nutzer denn noch haben? Wenn er Datenbanken anlegen kann, also schreibend auf die DB zugreifen darf, dann sollte er das auch lesend dürfen.

    Ich habe mir gerade mal einen Docker mit ner MySQL aufgesetzt (MySQL 5.7 in dem Fall):

    Befehl: docker run --name kodi-mysql -e MYSQL_ROOT_PASSWORD=root_pw -p 3306:3306 -d mysql:5.7

    Das mit dem % scheint nachweislich nicht zu funktionieren. Wenn ich aber die Nummer mit angebe, dann klappt das, wie man sehen kann. Deine Anleitung ist also einfach schlecht weil: March 9, 2015 Seither haben sich nunmal Dinge geändert ;)

    Dann habe ich angefangen mein Kodi einzurichten. Frisches Kodi installiert und das Logfile dabei beobachtet. Der Kodi User, den ich verwende, hatte die Berechtigung Tabellen in den jeweilig angegebenen Datenbanken anzulegen. Wie man nun auch in der DB sehen kann:

    Ich logge mich mit dem "kodi"-User auf der MySQL ein, und wie man sehen kann, hat dieser User nur die Berechtigungen zu seinen beiden zugewiesenen Datenbanken. Weiter hat Kodi die DB auch sauber beschrieben. Der User hat also "Schreibrechte" auf die Datenbank und auch auf die darunter liegenden Tables:


    Gleiches habe ich auch nochmal mit meiner MusicDB gemacht. Da spare ich mir jetzt mal die Ausgaben, da sie zu lang werden.

    Um dein Problem nachzustellen, habe ich folgendes getan:

    • einen Film als "gesehen" markiert
    • das Kodi auf der Maschine wieder entfernt: rm -rf .kodi und habe es neu aufgesetzt (mit [definition='2','1']advancedsettings[/definition].xml)

    Resultat:

    Nach einem Start vom frischen Kodi ist der gleiche Film als gesehen markiert und ich musste keine weiteren Quellen einrichten. Filme waren abspielbar und auch die Musik konnte ich hören.

    Zu deiner Theorie, dass der Table "Songview" nicht existiert, muss ich dir leider sagen, dass du falsch liegst:

    Auch der Table "Song" existiert. Warum das bei dir fehl geschlagen ist vermag ich nicht zu beurteilen.

    Vielleicht hast du anstelle von MySQL auch MariaDB verwendet....ich habe keine Ahnung, was du da gemacht hast. Aber wie du hier ganz deutlich sehen kannst, klappt es so wie ich es beschrieben habe. Und ich konnte es auch belegen, dass offensichtlich das % als Platzhalter nicht verstanden wird. Warum das bei dir funktioniert haben soll (angeblich....oder offensichtlich auch nicht, weil du hattest damit ja nicht ausreichend Berechtigungen) weiß ich auch nicht. Grundlegend solltest du bei dem Absetzen des Befehls o. g. Fehlermeldung bekommen.

    Ich muss gestehen, dass ich es nicht mit MariaDB gemacht habe und das werde ich auch nicht tun. Wir haben leider sehr viele Fehler was MariaDB angeht. Ich würde immer empfehlen MySQL zu verwenden und ja, auch ich weiß, dass MySQL auf Debian Systemen von MariaDB ersetzt worden ist. Das heißt aber nicht, dass man MySQL nicht mehr nutzen kann.

    Gruß

  • Scheiß drauf...ich habs doch mal mit MariaDB versucht:

    Auch hier schlägt der Platzhalter "%" fehl

    Kodi habe ich dann ebenso eingerichtet und auch dort funktioniert alles.


    Nach dem einrichten meiner Musik-DB existiert hier auch der Table "Songview". Daran kann es also nicht gelegen haben. Irgendwas musst du wohl anders gemacht haben als ich. Gott weiß was ;)

    Wenn du noch spezifische Fragen hast, dann nur zu. Aber bitte hör auf an der DB rumzufingern. Kodi macht in dem Fall alles richtig.


    @darkside40 POC...es ist immer noch total easy. Das ganze habe ich in 10 Minuten bewerkstelligt. Bei MariaDB musste ich sogar noch kurz Doku lesen damit ich weiß, wie ich den Docker starten muss. Es ist und bleibt easy ;)

  • ... allerdings würden die Rechte bei jedem Main-Release-Wechsel von Kodi Probleme bereiten, weil keine neue DB angelegt werden kann. Schick wäre in der Tat ein Jokerzeichen ...

    Ich nutze: 2x Odroid C2 + 2x Aml-S912-Box (CoreELEC); Skin: Estuary Mod v2 - vielen Dank an: PvD! :thumbup:
    Info: Ich habe eine Emby-Resistenz, daher keine Infektion möglich. [bm]

  • @SkyBird1980 Mag sein, dass das Wiki Fehler enthält. Das Wiki ist Community-driven und jeder darf das ändern. Vielleicht habe ich auch einen Fehler gemacht. Diesen Abschnitt habe ich tatsächlich nicht gesehen. Danke für den Link. Ich werde mir das nochmal anschauen und dann ggf. auch das Wiki korrigieren.

    Edit:

    Mea Culpa. Mein Fehler. Das Wiki ist korrekt und die Platzhalter gehen. Zumindest bei MariaDB. MySQL kann ich gerade nicht testen, da ich hier an einem M1 MacBook sitze und es für MySQL kein Docker-Manifest für MySQL unter ARM64 gibt. Ich habe es gerade nochmal hier mit MariaDB getestet und anscheinend habe ich Anführungszeichen vergessen MyVideos%.* zu 'MyVideos%'.*. Ich werde also nochmal Tests durchführen und schauen, wie die Berechtigungen dann laufen. Auf dem Rechner hier habe ich gerade kein Kodi laufen, aber docker ;). Daher konnte ich gerade keine großen Tests machen. Vielleicht mache ich auch einfach einen neuen Thread auf und schreibe mal eine kleine Anleitung, wie man das ganze in Docker gewährleistet.

    3 Mal editiert, zuletzt von DaVu (5. Februar 2022 um 15:57)

  • Meine Fresse....da muss man aber genau schauen.

    Ich sitze jetzt an einem anderen Rechner und habe es dort nochmal mit MySQL versucht. Ich habe es oben tatsächlich falsch gemacht. Ich hatte es mit den Anführungszeichen ziemlich sicher versucht und auch das hat nicht funktioniert. Wichtig anzumerken ist an dieser STelle der Unterschied zwischen:

    ' und ` und das es bei der DB mit dem letzteren und bei dem Usernamen mit dem ersteren geht. Das ist wirkich tricky.

    @chrisfetzer Da möchte ich mich vor allem bei dir entschuldigen. Ich werde, wie gesagt nochmal tests machen und dann nochmal berichten. Jetzt macht mich das Thema richtig neugierig ;)

  • So....ich habe jetzt nochmal von vorn angefangen.

    • docker container mit MySQL gestartet
    • mich in der MySQL mit dem Root-user angemeldet
    • user angelegt: CREATE USER 'kodi' IDENTIFIED BY 'test1234';
    • Rechte vergeben:

      • GRANT ALL ON `MyVideos%`.* TO 'kodi';
      • GRANT ALL ON `MyMusic%`.* TO 'kodi';
    • [definition='2','1']advancedsettings[/definition].xml angelegt und Kodi gestartet
    • mich im Docker von der MySQL als Root-User abgemeldet und mich als kodi angemeldet
    • im Container dann SHOW DATABASES; ausgeführt (die Kodi Datenbanken wurden angezeigt).
    • dann wollte ich mich mit einer der Datenbanken verbinden: USE MyVideos119; (in dem Fall hier ist es 119, da ich hier noch eine sehr alte Kodi 20 Alpha verwende)

    Alles hat soweit funktioniert. Filme wurden angelegt. Der User 'kodi' konnte die Datenbank benutzen. Somit wirklich alles gut. Habe auch meine Musik-DB gecheckt und auch da ist dann immer noch das Table "Songview" vorhanden.
    Ich weiß also wirklich nicht, was da krumm gelaufen sein soll.
    Wenn ich die Berechtigungen angelegt habe, kann man die auch abfragen: show grants for 'kodi';
    und da steht dann sowas hier drin:

    Code
    mysql> show grants for 'kodi';
    +-----------------------------------------------------+
    | Grants for kodi@%                                   |
    +-----------------------------------------------------+
    | GRANT USAGE ON *.* TO 'kodi'@'%'                    |
    | GRANT ALL PRIVILEGES ON `MyVideos%`.* TO 'kodi'@'%' |
    | GRANT ALL PRIVILEGES ON `MyMusic%`.* TO 'kodi'@'%'  |
    +-----------------------------------------------------+
    3 rows in set (0.01 sec)

    Ich habe dann aus Spaß mal eine DB angelegt: CREATE DATABASE MyVideos100;
    und der User "kodi" konnte sich direkt damit verbinden und hatte auch alle Berechtigungen. Somit @KOorDInator ...es gibt die Option eines "Joker"-Zeichens ;)

    2 Mal editiert, zuletzt von SkyBird1980 (5. Februar 2022 um 19:33) aus folgendem Grund: Minitypo entfernt

  • Hi zusammen,
    bin neu hier und habe leider keine direkte Antwort gefunden.
    Wenn ich was überlesen habe, gebt mir einen Tip wo ;)
    Bin auf meinem PI3 von Libreelec V9 Leia auf V10 Matrix umgestiegen.
    Wenn ich die [definition='2','1']advancedsettings[/definition].xml von meinem alten System verwende bleibt Matrix beim booten stehen und ich muss das System neu aufsetzen (bzw, Kartenbackup)
    Hat jemand eine Idee?

    Datenbank liegt auf einer Synology DS118+(MariaDB5)

    Spoiler anzeigen


    <[definition='2','1']advancedsettings[/definition]>

    <videodatabase>
    <type>mysql</type>
    <host>182.***.***.***</host>
    <port>3306</port>
    <user>kodi</user>
    <pass>kodi</pass>
    </videodatabase>
    <musicdatabase>
    <type>mysql</type>
    <host>182.***.***.***</host>
    <port>3306</port>
    <user>kodi</user>
    <pass>kodi</pass>
    </musicdatabase>
    <videolibrary>
    <importwatchedstate>true</importwatchedstate>
    <importresumepoint>true</importresumepoint>
    </videolibrary>
    </[definition='2','1']advancedsettings[/definition]>

  • Mach nen eigenen Thread auf und darin schilderst du dein Problem dann etwas genauer. So mit angehängtem Logfile und der Advancedsettings die bei dir Probleme macht.

  • Mach nen eigenen Thread auf und darin schilderst du dein Problem dann etwas genauer. So mit angehängtem Logfile und der Advancedsettings die bei dir Probleme macht.

    Hi DaVu
    danke für den TIp, wollte ich tun, beim Logfile auslesen ist mir etwas aufgefallen.
    Habe mit MyPHPadmin die beiden Matrixdatenbanken(119 und 82) gelöscht und neu migriert beim nächsten KodiMatrix Start.
    Jetzt läuft es, war wohl ein Datenbankfehler.

    Grüße und Gesundheit

Jetzt mitmachen!

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