XBMC Live Dharma 10.1: Fragen zur Umstellung auf MySQL-Datenbank

  • Anhand dieser Anleitung habe ich auf einem frisch installierten XBMC Live 10.1 (auf einem Acer Revo R3610) folgende Schritte durchgeführt:

    Code
    $ sudo aptitude update
    $ sudo aptitude install mysql-server
    Code
    $ mysql -u root -p
    Code
    mysql> CREATE DATABASE xbmc_music;
    mysql> GRANT ALL on xbmc_music.* TO 'xbmc'@'localhost' IDENTIFIED BY 'xbmc';
    mysql> GRANT ALL on xbmc_music.* TO 'xbmc'@'%' IDENTIFIED BY 'xbmc';
    mysql> FLUSH PRIVILEGES;
    mysql> exit;
    Code
    mysql> CREATE DATABASE xbmc_video;
    mysql> GRANT ALL on xbmc_video.* TO 'xbmc'@'localhost' IDENTIFIED BY 'xbmc';
    mysql> GRANT ALL on xbmc_video.* TO 'xbmc'@'%' IDENTIFIED BY 'xbmc';
    mysql> FLUSH PRIVILEGES;
    mysql> exit;
    Code
    nano ~/.xbmc/userdata/[definition='2','1']advancedsettings[/definition].xml

    Meine [definition='2','1']advancedsettings[/definition].xml sieht jetzt so aus:

    Da ich gerne die komplette Datenbank und die Thumbnails auf mein NAS verlegen würde, habe ich die host-strings in der [definition='2','1']advancedsettings[/definition].xml folgendermaßen konfiguriert:

    Code
    <host>192.168.0.200</host>

    In der Datei /etc/mysql/my.cnf habe ich in der Zeile bind-address die IP des NAS eingetragen (192.168.0.200).
    Außerdm die Zeile skip-name-resolve hinzugefügt.

    Und was soll ich sagen: Es klappt :thumbup:

    (Der Fehler in meinem ersten Versuch lag wahrscheinlich darin, dass ich die Datenbanken auf dem NAS über die entsprechenden Menüs erstellt hatte.
    Die so erzeugten Datenbanken habe ich gelöscht, und sie stattdessen in der Kommandozeile angelegt.)

    Frage: Da jetzt so weit also alles einwandfrei zu laufen scheint, würde ich gerne im nächsten Schritt auch die Thumbnails auf das NAS auslagern.
    Dazu habe ich einen Share auf dem NAS erstellt: \\192.168.0.200\xbmcthumbs

    Was muss ich jetzt tun, damit die Thumbnails auf diesem Share gespeichert werden, um im nächsten Schritt mit meinem Apple TV 2 ebenfalls auf diese Datenbank und die Thumbnails zugreifen zu können?

  • Hi,
    schön das es noch geklappt hat! Wenn man nicht alles selber macht. ;)
    Jetzt kannst Du den Teil in der [definition='2','1']advancedsettings[/definition].xml eintragen:

    XML
    <pathsubstitution>
       <substitute>
          <from>special://masterprofile/Thumbnails</from> 
          <to>smb://xbmc:xbmc@192.168.0.200/xbmcthumbs/</to>
       </substitute>
    </pathsubstitution>


    Wie schon gesagt, ich bin nicht 100% sicher, ob 'pathsubstitution' in Dharma schon implementiert ist. (in der iOS Version ist es auf jeden Fall drin)
    Aber das wirst Du sofort im [definition='1','0']log[/definition] sehen können, wenn Du die "debug"-Option aktivierst, sollte so ausssehen:

    Code
    20:17:07 T:8148800 M:1666707456   DEBUG: Configuring path substitutions
    20:17:07 T:8148800 M:1666707456   DEBUG:   Registering substition pair:
    20:17:07 T:8148800 M:1666707456   DEBUG:     From: [/home/xbmc/.xbmc/userdata/Thumbnails]
    20:17:07 T:8148800 M:1666707456   DEBUG:     To:   [smb://xbmc:xbmc314@192.168.2.2/xbmcthumbs/]

    f

  • Danke.

    Pathsubstitution ist offenbar leider noch nicht implementiert. Gibt es noch eine andere Möglichkeit, das Verzeichnis umzubiegen?
    Ohne diese Möglichkeit sehe ich keinen großen Nutzen darin, mit 2 XBMCs auf eine zentrale Datenbank zuzugreifen, oder habe ich da etwas falsch verstanden?

    Außerdem habe ich festgestellt, dass das mit der DB auf dem NAS mit den Videos doch nicht funktioniert. Das ist mir zwar nicht ganz so wichtig wie die Musikdatenbank, aber ich wüsste schon gerne, warum.
    Im MySQL-Frontend sehe ich, dass da zwar Tabellen angelegt werden, aber die sind alle, bis auf die namens "path" und "version" leer...

    http://paste2.org/p/1303540

    EDIT: Noch etwas - in der xbmc_music wird für die Tabelle "songview" folgendes angezeigt:

    "Dieses View hat mehr als 20 Zeilen. Bitte schlagen Sie im Handbuch nach."

    Da steht:

    "$cfg['MaxExactCount'] integer
    For InnoDB tables, determines for how large tables phpMyAdmin should get the exact row count using SELECT COUNT. If the approximate row count as returned by SHOW TABLE STATUS is smaller than this value, SELECT COUNT will be used, otherwise the approximate count will be used.
    For VIEWs, since obtaining the exact count could have an impact on performance, this value is the maximum to be displayed."

    Muss ich da überhaupt etwas ändern?
    Und wenn ja, wie?

  • Hi,

    wen du Win7 auf den Clients benutzt, dann gehe in dein XBMC User Verzeichnis (..\AppData\Roaming\XBMC\userdata)
    Benenne den Thumbnails ordner um, starte eine Commandozeile als admin und gib ein
    mklink /D Thumbnails \\<ip nas>\freigabe

    läuft hier auf zwei clients :D

    gruss

    Der Klügere gibt nach, darum regieren Poliker

  • Danke, aber das Thema MySQL-Datenbank unter XBMC hat sich für mich mittlerweile wieder erledigt.

    Ich kann - zumindest auf dem Revo - keinen Performance-Gewinn entdecken kann, im Gegenteil: Beim Bereinigen der Musikdatenbank beispielsweise friert XBMC komplett ein, der MySQL-Prozess bleibt auf 100% hängen. Von einigen anderen unschönen Effekten, die ich mit der Standard-DB von XBMC so noch nicht hatte, mal ganz abgesehen.

    Die Datenbanke habe ich gelöscht, Deinstallation von MySQL geht dann wohl so:

    Code
    sudo apt-get remove mysql-server

    ?

    Ich frage das, weil sich bei Absetzen dieses Befehls der Prozess schon Mal aufgehängt hat.

  • Jetzt mal unabhängig von zu erwartenden Optimierungen:

    - Musik im Datenbank-Modus - Interpreten / Genre - minutenlanges Rödeln ohne Ergebnis, bei laufender Wiedergabe wird diese unterbrochen.
    Der mysql-Prozess läuft dann auf Anschlag, XBMC reagiert entweder gar nicht mehr oder mit starker Verzögerung.
    Habe maximal 15 Minuten gewartet, bis ich per SSH die Maschine neu gebootet habe.
    - Ähnliches bei der Suche in der Datenbank.

    - Die Video-Scraper-Einstellungen wurden nicht gespeichert. Das Einlesen neuer Inhalte funktionierte teilweise bis gar nicht.
    - Der Aufruf von Medieninformationen bei Videodateien ging gar nicht.

    Alles übrigens auch mit lokaler SQL-DB.

    Die letzten beiden Punkte mögen damit zusammenhängen, dass die Videodatenbank von einem Moment auf den anderen nicht mehr lief.

    Sehr ernüchternd das Ganze, aber ich sehe es locker. Habe wieder ein bisschen was dazu gelernt und kenne jetzt z.B. ein paar SQL-Grundgegriffe.
    Ich friemel gerne herum, gerne auch mal etwas länger, aber dann muss ich auch einen effektiven Nutzen darin sehen, und der fehlt mir.

    Dafür weiß ich jetzt wieder, was ich an der Standard-DB von XBMC habe - damit läuft es wieder wie Schmitzkatze.

  • Ok, danke für die Auflistung,
    Aber da scheint ja noch irgendetwas (anderes) im argen zu sein, denn obwohl die Mysql Unterstützung noch experimentell ist, funktioniert es ja eigentlich.
    Ich möchte bezweifeln, dass da alles am XBMC liegt.
    Wie ist denn Dein NAS so leistungsmässig bestückt?
    Was mir noch nicht ganz klar ist, hast Du den mysql server nur auf dem NAS getestet oder auch mal lokal auf dem revo?
    **EDIT** ok, richtig, lesen, auch lokal, komisch. ?(

    Zitat


    In der Datei /etc/mysql/my.cnf habe ich in der Zeile bind-address die IP des NAS eingetragen (192.168.0.200).
    Außerdm die Zeile skip-name-resolve hinzugefügt.


    ... aber nicht auf dem revo, oder?
    (Ich will Dich jetzt nicht irgendwie überreden, ich wundere mich nur. :) )

  • Doch, natürlich auf dem Revo - warum sollte ich die IP des MySQL-Servers auf dem selben Server eintragen? ?(


    4. Anpassung der MySQL-Server Konfiguration in der Datei /etc/mysql/my.cnf:

    Code
    $ sudo nano /etc/mysql/my.cnf


    Um Netzwerkzugriff zu ermöglichen muss in der Zeile:

    Code
    bind-address   127.0.0.1


    die IP des MySQL-Server-Rechners eintragen werden, z.B:

    Code
    bind-address   192.168.2.3


    Zur Performancesteigerung kann zusätzlich die Option 'skip-name-resolve' in der Sektion [mysqld] hinzugefügt werden. (dann aber nur noch mit IP-Adressen arbeiten!)

    Mal abgesehen davon, dass das Linux auf meinem NAS weder sudo, noch nano kennt und die mysql-Konfiguration da woanders gespeichert ist, sollte das in deiner Anleitung hervorgehoben werden, falls das tatsächlich am Server geändert werden muss.

    Außerdem hat es ja grundsätzlich so funktioniert.

  • Ne, das ist nicht ganz richtig. 'bind-adress' ist die IP-Adresse auf die der MySQL Server lauscht, also die des Rechners, auf der server läuft. (manchmal hat ein Rechner ja mehrere IPs oder die DB soll aus dem Netz gar nicht erreichbar sein)
    Du bräuchtest auf dem Rechner, auf dem das XBMC läuft keine weitere Konfiguration ausser der [definition='2','1']advancedsettings[/definition].xml.
    Ich überlege nur, was das für Folgen hat... bzw, wieso das funktioniert. :)

    Ich finde in der Anleitung ist das klar, weil ja überhaupt nur auf einem Rechner MySQL (-server) installiert wird.

Jetzt mitmachen!

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