Quantcast
Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Kodi und die zentrale Datenbank

Radagast

Elite User
Registriert
11. Mai 2013
Beiträge
1.746
Reaktionspunkte
1.009
Punkte
383
Kodi und die zentrale Datenbank

Wer mehr als einen Kodi Client im Einsatz hat vermisst evtl eine zentrale Datenbank mit deren Hilfe ein einheitlicher Status gegeben wird über bereits gesehene Filme oder man schaut den Film xyz bis zur Hälfte und möchte an der selben Stelle in einem anderem Raum den Film fertig ansehen. Dies sind ein paar Vorteile die eine zentrale Datenbank bei Kodi hat.

Im folgendem möchte ich euch einen kleinen Leitfaden an die Hand geben wie ihr unter Windows oder unter Debian MySQL installieren könnt und wie ihr Kodi dies dann auch mit auf den Weg gebt.

Achtung!
Wir selber legen keine Daten innerhalb von MySQL an. Dies erledigt alles Kodi für uns.
Auf allen Clients muß die selbe Version von Kodi laufen. Sprich es gibt Probleme, wenn auf dem einen Client Version 14.2 läuft und auf einem anderem bereits die Version 15.0!
Bei Verwendung einer zentralen Datenbank müßt ihr immer alle Clients auf den selben Versionsstand bringen.

Installation von MySQL unter Windows:

Auf der Webseite von könnt ihr euch das entsprechende Produkt herunter laden.
Ihr werdet nach einem Account bei Oracle gefragt, aber es ist nicht notwendig einen solchen zu haben.

Hinweis:
Laut dem Wiki von Kodi sollte MySQL Version 5.5.42 genommen werden da mit neueren Versionen Probleme vorhanden sind. Ich selber verwende Version 5.6.26 und konnte bisher keine Probleme feststellen.

Am einfachsten ist es, wenn ihr euch dem msi-Installer saugt.
Nach dem ihr den Lizensbestimmungen zugestimmt habt wählt ihr als Setup Type "Server only". Alles andere wird nicht benötigt.

Du musst angemeldet sein, um Bilder zu sehen.


Wählt "Next" und anschließend Execute

Du musst angemeldet sein, um Bilder zu sehen.


Sobald die Installtion abgeschlossen ist kommt ihr über "Next" zur Konfiguration. Hier bitte wieder unter Config Type "Server Machine" auswählen

Du musst angemeldet sein, um Bilder zu sehen.


Über "Next" kommen wir dann zur "Userverwaltung"

Du musst angemeldet sein, um Bilder zu sehen.


Hier müßt ihr jetzt als erstes ein Passwort für den Benutzer root hinterlegen. Dieses Passwort kann wichtig sein wenn ihr nachträglich mal etwas am SQL-Server ändern wollt. Von daher schreibt euch das Passwort irgendwo auf!
Eure Eingaben werden nicht im Klartext angezeigt.

Du musst angemeldet sein, um Bilder zu sehen.


Danach geht es an den MySQL User Account.

Hier legen wir jetzt einen Benutzer mit zugehörigem Passwort und den den entsprechenden Rechten für Kodi an.
Wir klicken auf den Button "Add User" und geben die entsprechenden Daten an.
In diesem Beispiel verwende ich als Usernamen kodi und auch kodi als Passwort.
Was ihr verwendet bleibt euch überlassen. Nur merken müßt ihr euch eure Daten, denn wir brauchen sie nachher.

Du musst angemeldet sein, um Bilder zu sehen.


Mit "OK" schließen wir das Fenster und gehen anschließend mit "Next" zum nächsten Schritt.
Bei dem Schritt "Windows Service" lassen wir alles so wie die Voreinstellungen es uns vorgeben.

Du musst angemeldet sein, um Bilder zu sehen.


Mit "Next" geht es auch diesmal weiter und lassen abschließend den MySQL-Installer mit "Execute"

Du musst angemeldet sein, um Bilder zu sehen.


den Rest erledigen und können sofern keine Fehlermeldung kam mit "Finish"

Du musst angemeldet sein, um Bilder zu sehen.


die Installation abschließen.

Die Installationsroutine öffnet in der Windowsfirewall den entsprechenden Port 3306. Falls ihr von einem Dritthersteller eine Firewall auf dem System habt müßt ihr evlt selber Hand anlegen.



Installation von MySQL unter (Debian-)Linux:


Mit dem Befehl
Code:
sudo apt-get install mysql-server
könnt ihr auf einem Linux System einen MySQL-Server installieren.
Während der Installation werdet ihr nach einem (root) Passwort gefragt. Dies solltet ihr euch gut merken, denn es ist wichtig um später Zugriff auf den SQL-Server zu erhalten.
Wenn die Installation ohne Fehlermeldungen abgeschlossen wurde,
Code:
Starting MySQL database server: mysqld ..
Checking for corrupt, not cleanly closed and upgrade needing tables..
libhtml-template-perl (2.9-2) wird eingerichtet ...
mysql-server (5.1.73-1) wird eingerichtet ...
user@testsytem:~#
So oder zumindest so ähnlich sollte es bei euch aussehen, geht es an die Konfiguration. Mit
Code:
nano /etc/mysql/my.cnf
rufen wir die allgemeine Konfig auf und legen hier erstmal fest auf welcher IP MySQL auf irgendwelchen Anfragen lauschen soll.
Sucht die Zeile, welche mit bind-address anfängt und ändert die IP von 127.0.0.1 auf die IP eures Systems ab.

Code:
bind-address = 192.168.x y
Mit Strg-o speichert ihr die Änderungen ab und mit Strg-x verlasst ihr den Editor.
Ansonsten bitte nichts anderes ändern.

Damit MySQL dies auch übernimmt ist der Dienst neu zu starten
Code:
restart mysql
Abschließend muß noch ein User mit den entsprechenden Rechten erstellt werden
Code:
mysql -u root -p
CREATE USER 'kodi' IDENTIFIED BY 'kodi';
GRANT ALL ON *.* TO 'kodi';
\q

Hinweis!
Sollte die zentrale Datenbank bei einem bestehendem Kodi-System eingebunden werden müssen wir uns erst noch um den Inhalt der vorhandenen lokalen Bibliotheken von Kodi kümmern.
Falls dies nicht geschieht startet Kodi mit einer leeren Datenbank und alle Filme/Serien/MP3s werden neu eingelesen und evtl manuelle Einstellungen gehen verloren.

Hierzu müssen wir die entsprechenden Bibliotheken erst noch exportieren.
1. Die Video Datenbank
Optionen -> Video -> Datenbank -> Videobibliothek exportieren

In eine einzelne Datei oder in separate Dateien pro Eintrag exportieren? - Separat
Sollen Bilder und Fanart exportiert werden? - Ja
Bilder der Darsteller exportieren? - Ja
Alte Dateien überschreiben? - Ja

2. Die Musik Datenbank
Optionen -> Musik -> Musikdatenbank exportieren

In eine einzelne Datei oder in separate Dateien pro Eintrag exportieren? - Separat
Sollen Bilder und Fanart exportiert werden? - Ja
Alte Dateien überschreiben? - Ja

Tip:
Von Zeit zu Zeit gehe ich diese Schritte manuell durch um die Daten aus der Datenbank auf die Festplatte zu speichern. Ich habe dann im Fall der Fälle, dass die SQL-Datenbank aus welchen Gründen auch immer nicht mehr vorhanden sein sollte ein Backup über den Status meiner Filme und Serien.

Um die zentrale SQL Datenbank anschließend nutzen zu können sind noch Einträge in der advancedsettings.xml notwendig.
Die advancedsettings.xml ist eine Konfig-Datei, welche von Haus aus nicht angelegt ist und von euch erstellt werden muß. Sie ist im entsprechendem userdata Ordner abzulegen.
Selbiger ist im selben Verzeichnis zu finden in welchem auch das Logfile von Kodi zu suchen ist -> Infos - Kodi und die Suche nach dem Logfile

Hier finden sich jetzt der Username, das Passwort, der Port und auch die IP Adresse wieder.
Code:
<advancedsettings>
  <videodatabase>
    <type>mysql</type>
    <host>***.***.***.***</host>
    <port>3306</port>
    <user>kodi</user>
    <pass>kodi</pass>
  </videodatabase>
  <musicdatabase>
    <type>mysql</type>
    <host>***.***.***.***</host>
    <port>3306</port>
    <user>kodi</user>
    <pass>kodi</pass>
  </musicdatabase>
  <videolibrary>
    <importwatchedstate>true</importwatchedstate>
    <importresumepoint>true</importresumepoint>
  </videolibrary>
</advancedsettings>
***.***.***.*** bitte durch die IP-Adresse des MySQL Servers ersetzen. Es ist nicht empfehlenswert Anstatt der IP Adresse mit dem NetBIOS Namen zu arbeiten da nicht alle Geräte diesen sauber auflösen können.

Zentraler Speicherort für Thumbnails

Nicht in der zentralen Datenbank abgelegt sind die ganzen Thumbnails die Kodi zur Darstellung verwendet.
Auch diese können an einen zentralen Ort ausgelagert werden mit Hilfe von pathsubstitution in der advancedsettings.xml.
Hierzu legt ihr auf eurem Server ein Netzwerklaufwerk an und tragt dies entsprechend in die advancedsettings.xml ein.
Es sollte dann wie folgt aussehen
Code:
    <pathsubstitution>  
        <substitute>
          <from>special://masterprofile/Thumbnails/</from>
          <to>smb://username:passwort@ip.des.ser.vers/Name des Netzwerklaufwerks</to>
        </substitute>
    </pathsubstitution>
Anstelle von smb (Windowsfreigabe) sind auch andere Möglichkeiten vorhanden wie z.B. nfs.

Die gesamte advancedsettings.xml sollte abschließend dann so aussehen:
Code:
<advancedsettings>
  <videodatabase>
    <type>mysql</type>
    <host>***.***.***.***</host>
    <port>3306</port>
    <user>kodi</user>
    <pass>kodi</pass>
  </videodatabase>
  <musicdatabase>
    <type>mysql</type>
    <host>***.***.***.***</host>
    <port>3306</port>
    <user>kodi</user>
    <pass>kodi</pass>
  </musicdatabase>
  <videolibrary>
    <importwatchedstate>true</importwatchedstate>
    <importresumepoint>true</importresumepoint>
  </videolibrary>
  <pathsubstitution>  
        <substitute>
          <from>special://masterprofile/Thumbnails/</from>
          <to>smb://username:passwort@ip.des.servers./Name des Netzwerklaufwerks</to>
        </substitute>
    </pathsubstitution>
</advancedsettings>

Änderungen an der advancedsettings.xml werden immer nur nach einem Neustart von Kodi übernommen!
 
Zuletzt bearbeitet:
Vielen Dank für die ausführliche Anmeldung, Radagast!

Nachdem bei mir anfänglich alles wie beschrieben geklappt hat, habe ich die letzten 2h damit verbracht, herauszufinden, warum die advancedsettings.xml bei mir nicht eingelesen wird.
Schlussendlich habe ich den Fehler gefunden: in dem von dir oben geposteten Inhalt bzgl. pathsubstitution ist der start tag fehlerhaft: es muss am Anfang "<pathsubstitution>" heißen anstelle von "</pathsubstitution>" - das "/" darf nur am Ende beim end tag stehen. Hatte ich bei meiner copy-paste-Aktion anfangs leider übersehen...

Vielleicht kannst du das hier im Post ändern, sodass andere User nicht die gleichen Probleme bekommen.

Vielen Dank und Grüße, fmf2000
 
Zurück
Oben