RASBMC: RaspberryPi mit MySQL Datenbank für XBMC

Da nicht nur mein RaspberryPi mit XBMC seine Aufgabe im Wohnzimmer erledigt, sondern ein noch eine weitere XBMC-Rechner seinen Dienst in meinem Haus verrichtet, möchte ich mir nicht gerne doppelte Arbeit machen. Somit installiere ich auf meinem NAS, bzw auf RASBMC noch eine MySQL-Datenbank und halte damit die Bibliotheken und Einstellungen synchron.

Nach der üblichen Installation des MySQL-Servers ( apt-get install mysql-server ) und anschliessender Passwortvergabe sichere ich immer erst einmal grundlegend das DBMS ((DBMS = Datenbankmanagementsystem)) mit dem Befehl mysql_secure_installation ab. Grundlegend. Wer das DBMS wirklich absichern möchte, sollte die einschlägigen Fachbeiträge zu rate ziehen.

Damit RASBMC sich mit der mySQL-Datenbank verbinden kann, muss in der Datei /etc/mysql/my.cnf bind-address von 127.0.0.1 auf die IP-Adresse des Servers ( als bsp 192.168.1.2) geändert und per service mysql restart das DBMS neu gestartet werden.
Dies gilt nicht für die Installation von mySQL auf dem Pi direkt.
Bei der Installation von MySQL auf RASBMC ist wichtig zu Wissen, der Pi muss dauerhaft laufen, damit man immer das DBMS von einer anderen Instanz aus erreichen kann und eine Installation auf dem USB-Stick wie hier beschrieben ist mehr als anzuraten.

Als nächstes müssen der Benutzer und die Datenbank für die XBMC-Daten angelegt werden:

root@akebono:/home/seraphyn# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or g
Your MySQL connection id is 37
Server version: 5.5.28-1 (Debian)
mysql> CREATE USER 'xbmc' IDENTIFIED BY 'seraphynsxbmcpasswort';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL ON *.* TO 'xbmc';
mysql> q

Somit ist der Datenbankbenutzer angelegt und diese Daten müssen auch in die Datei advancedsettings.xml im Verzeichnis /home/pi/.xbmc/userdata/advancedsettings.xml: eingetragen werden, damit sich XBMC mit der Datenbank verbinden kann:

<advancedsettings>
  <videodatabase>
    <type>mysql</type>
    <host>DEINEIP</host>
    <port>3306</port>
    <user>xbmc</user>
    <pass>PASSWORT</pass>
  </videodatabase> 
  <musicdatabase>
    <type>mysql</type>
    <host>ANDERIP</host>
    <port>3306</port>
    <user>xbmc</user>
    <pass>TOLLESXMCPASSWORT</pass>
  </musicdatabase>
  <videolibrary>
    <importwatchedstate>true</importwatchedstate>
    <importresumepoint>true</importresumepoint>
  </videolibrary>
</advancedsettings>

XBMC wird nach dem ersten Aufnehmen der Daten die Tabellen selbst erstellen und man kann sich auch selbst davon überzeugen ;) :

mysql> show databases;

+--------------------+
| Database |
+--------------------+
balbalabla
MyMusic32
MyVideos75
blablabal
+--------------------+
45 rows in set (1.53 sec)

mysql> use MyVideos75
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+------------------------+
| Tables_in_MyVideos75 |
+------------------------+
| actorlinkepisode |
| blablabla |
| writerlinkmovie |
+------------------------+
43 rows in set (0.00 sec)

mysql> quit

Einfachheit, die besticht.
Somit sind nun die wichtigen Datenbanken zwischen den verschiedenen XBMC-Instanzen synchronisiert und was man im Wohnzimmer zu schauen anfängt, kann man nun beim Einschlafen weiterverfolgen. Hollywood hat einige sehr gute Schlafmittel ohne Nebenwirkungen im Angebot.

5 Gedanken zu „RASBMC: RaspberryPi mit MySQL Datenbank für XBMC“

  1. Hallo,
    vielen Dank für den aufschlussreichen Artikel.
    Wie steht es mit der Geschwindigkeit des Aufrufs der Filmliste bei einer großen Filmdatenbank (>1300 Filme) einer auf dem Pi eingerichteten MySQL-Datenbank im Vergleich zur klassischen Datenbank? Bringt die SQL-Installation auf dem Pi selbst einen signifikanten Geschwindigkeitsvorteil?
    Danke schon jetzt für eine kurze Info.

    • Salve,
      also mein DBMS liegt nicht auf dem Pi sondern auf meinem NAS, bzw kleinem Homeserver mit Debian.
      Und mit 1300 Filmen kann ich es dir nicht sagen. Es geht da eher um die Metadaten und wann man aufgehört hat einen Film in einem Raum zu schauen, damit in einem anderen Raum ohne Spulen weitergeschaut werden kann. Auch muss nicht jede XBMC-Instanz neu die Bibliothek aktualiseren, wenn sie auf dem DBMS liegt. Auf dem Pi das DBMS zu installieren, würde ich mir überlegen. Es geht, aber wie dann die Perfomance ist, kann ich nicht sagen

  2. Danke für die schnelle Antwort.
    Bei mir läuft nur eine XBMC Instanz in der Wohnung. Die Synchronisierung ist also nicht mein Problem.
    Ich denke mal, daß ich den Aufwand der Portierung in MySql nicht machen werde. Mein Gefühl sagt mir, daß der Geschwindigkeitsvorteil eben nicht signifikant ist.
    Herzlichen Dank nochmal für die schnelle Reaktion.

  3. Ich bin nach deinem Tutorial vorgegangen … Habe einen BananaPI auf dem Raspberry mit Samba und MySQL läuft, an diesem hängen auch die externen Festplatten. Desweiteren habe ich zwei RaspberryPIs, wenn ich nach deiner Anleitung vorgehe und die Geräte starte, werden auf dem BananaPI im MySQL die Datenbanken angelegt. Füge ich nun einen Ordner als neue Quelle hinzu, sage z.B. er beinhaltet Serien und lasse diesen Scrappen, scheint das RaspBMC dass augenscheinlich auch zu tun. Gehe ich aber danach dann in die Kategorie Serien um eine auszuwählen, und wähle dann z.B. Titel wird nichts angezeigt. Ich hoffe Du hast schnell einen Rat für mich, ich schlage mich nun schon einige Tage mit dieser Problematik rum. :(

    • Warum da etwas nicht in die Datenbanken in mySQL eingetragen wird, kann ich Dir nicht sagen.
      Was geben denn die Logs ( ) an Fehlermeldungen aus?

      Und Du hast einen :

      Habe einen BananaPI auf dem Raspberry mit Samba und MySQL läuft, an diesem hängen auch die externen Festplatten.

      ?

Kommentare sind geschlossen.