Feb 27, 2014

XBMC mit einer zentralen Datenbank nutzen

Im letzten Beitrag habe von einer zentralen Datenbank gesprochen, die mehrere Vorteile bringt:

  • Mediadateien müssen immer nur einmal synchronisiert werden
  • Fanarts werden immer nur einmal runtergeladen und auch nur einmal gespeichert
  • Schon gesehene Filme und Episoden werden in jedem XBMC gleich angezeigt.

Es gibt nun mehrere Möglichkeiten, sich so eine Datenbank aufzubauen. Zum einen gibt es natürlich die Möglichkeit, die Datenbank auf einem der XBMCs (z.b. Raspberry Pi) laufen zu lassen. Diese Datenbank kann man dann den anderen XBMCs freigeben. Dies hat allerdings den Nachteil, dass die anderen XBMCs nur darauf zugreifen können, wenn das XBMC, auf dem die Datenbank läuft, auch eingeschaltet ist.

Die zweite Möglichkeit, und auch die praktikablere, ist die Datenbank in Verbindung mit dem NAS aufzubauen. In meinem Fall ist dies ein DNS320 von DLINK. Von Haus aus bietet der Herstellen (wie sollte es auch anders sein) keinen zugreifbaren MySQL-Server an. Aber zum Glück gibt es ja viele schlaue Leute, die sich die Mühe gemacht haben, dass Linux auf dem DNS320 etwas aufzubohren. Mit dem sogenannten Funplug war das alles kein Problem. Bei der Installation hatte ich keine Probleme. Allerdings konnte ich seltsamerweise nicht von einem anderen Rechner als dem Server selbst auf den MySQL-Server zugreifen, was ja in diesem Falle nicht zweckdienlich war. Nach langem Suchen und viel Google habe ich endlich den Fehler gefunden. Die Einstellungen in der my.cnf sollten auf jedenfall vorsehen, dass „skip-networking“ auskommentiert ist und mit bind-address der komplette IP-Raum freigegeben ist. Das würde also wie folgt aussehen

    #skip-networking
    bind-address = 0.0.0.0

Soweit, so gut. Das hat allerdings bei mir noch nicht zum Erfolg geführt. Wie gesagt habe ich lange gesucht, aber schlussendlich habe ich die Ursache gefunden. In dem Startskript des MySQL-Servers war auch nochmal die Option „skip-networking“ gesetzt.
Der Eintrag sah wie folgt aus

   mysqld_flags="--user=root, --skip-networking"

Und so muss es aussehen:

    mysqld_flags="--user=root"

Nachdem der MySQL-Server neu gestartet wurde, konnte ich nun auch von anderen Rechnern auf den MySQL-Server zugreifen.

Nun muss man aber noch den XBMC sagen, dass sie nicht, wie standardmäßig eingestellt, eine lokale Datenbank verwenden, sondern die nun aktivierte MySQL-Datenbank auf dem Server.

Dies bewerkstelligt die Datei advancedsettings.xml im Ordner .xbmc/userdata. In meinem Fall sieht die Datei wie folgt aus:

 
       mysql
       192.168.178.3
       3306
       xbmc
       xbmc
       xbmc_video
 
 
       mysql
       192.168.178.3
       3306
       xbmc
       xbmc
       xbmc_music
 
 
          true
 
 
 
          special://masterprofile/Thumbnails/
          smb://miranda/EigeneDateien/XBMC/Thumbnails

In der MySQL-Datenbank muss man vorher natürlich den Benutzer xbmc mit dem Passwort xbmc angelegt haben. Wenn man nun den XBMC neu startet, sucht er nach den erforderlichen Datenbanktabelle. Da er diese ja noch nicht finden kann, legt er eigenständig die gesamte Datenbankstruktur an.
Das heisst, man kann nun sofort loslegen und seine Mediadateien einzulesen. Es ist auch möglich, eine zuvor gesichterte Datenbank wiederherzustellen. Wenn man also schon seine Daten vorher eingelesen hatte, muss man vorher die Datenbank sichern (Dazu gibt es einen Menüpunkt in den XBMC-Einstellungen).

So. Nun muss man nur noch die advancedsettings.xml kopieren und auf den XBMCs verteilen und schon kann es losgehen 🙂
 

Leave a Reply