Hi.
Nachdem immer wieder Probleme mit der gemeinsamen Datenbank für Kodi auftauchen und ich das absolut gar nicht verstehen kann, dachte ich, ich schreibe mal ein kurzes "HowTo" wie ich das seit (denke ich) mindestens Kodi 16 so mache und noch nie Probleme damit hatte.
Als Voraussetzung braucht man natürlich einen Datenbank Server. Früher MySQL, heute eher die Open Source Variante davon, MariaDB, die vollständig kompatibel ist. Und auch eine Hardware, auf der diese Software läuft. Das kann ein NAS sein, ein RaspberryPi oder sogar eine Android Box oder zur Not sogar ein Smartphone, völlig egal. MariaDB Server gibt es buchstäblich für jedes System. Idealerweise läuft dieses Gerät 24/7. Sonst muss es auf jeden Fall vor dem ersten Kodi Klienten gestartet sein und muss laufen, bis der letzte Kodi Klient abgeschaltet ist. In sofern macht 24/7 durchaus Sinn. Man hat also die passende Hardware laufen und dort eine MariaDB Instanz installiert. Irgendwelche besonderen Einstellungen muss man nicht vornehmen. Man braucht nur einen User, der Datenbanken anlegen, ändern und löschen kann. Das kann man per MySQL CLI Befehlen direkt auf dem Gerät machen. Oder man verwendet ein Verwaltungstool. Am bekanntesten ist wohl PHPMyAdmin. Ich persönlich bevorzuge aber eine APP Lösung, keine Web Lösung. Für PHPMyAdmin braucht man einen vollwertigen Webserver. Ist der sowieso vorhanden, spricht nichts gegen PHPMyAdmin. Müsste man den aber extra dafür einrichten, ist das übers Ziel hinausgeschossen. Grade bei eher stromsparenden und deswegen meist schwachen Geräten würde ich mir diese zusätzlich Last nicht unbedingt antun wollen. Man kann dasselbe nämlich auch mit so etwas wie HeidiSQL tun. HeidiSQL ist eine OpenSource Standalone App für Windows. Bei Linux oder Mac gibt es sicher vergleichbares oder man muss eben doch einen Webserver mit PHP aufsetzen.
Egal wie, wir haben nun einen "mächtigen" Datenbank- User angelegt, der Datenbanken und Tabellen anlegen, verändern und löschen darf. Nennen wir ihn der Einfachheit halber mal "kodi". Dieser User hat natürlich ein Passwort bekommen. Nennen wir es der Einfachheit halber mal "kodi". Natürlich könnt ihr hier nehmen, was ihr mögt. Ihr müsst euch die User/Pass Kombination nur gut merken, denn die wird noch gebraucht.
Damit ist die größte Hürde schon überwunden. Der "Rest" wird jetzt in Kodi, genauer in einer einzigen Kodi Instanz erledigt. Bei mir ist das mein Desktop- System, da man hier einfach am besten editieren, kopieren,... kann. Mit Fernbedienung auf einer TV Box macht sich das einfach nicht so gut.
Zunächst müssen wir Kodi mitteilen, das es ab jetzt nicht mehr die lokalen SQLite Datenbanken verwenden soll, sondern die zentrale MariaDB Datenbank. Das passiert (leider immer noch) in der Datei "advancedsettings
<videodatabase>
<type>mysql</type>
<host>192.168.1.24</host>
<port>3306</port>
<user>kodi</user>
<pass>kodi</pass>
</videodatabase>
<musicdatabase>
<type>mysql</type>
<host>192.168.1.24</host>
<port>3306</port>
<user>kodi</user>
<pass>kodi</pass>
</musicdatabase>
Man sieht, es gibt zwei Einträge, videodatabase und musicdatabase. Dazwischen sind dann die Zugangsdaten eingefügt. User und Pass sind dieselben, die wir vorher in der MariaDB angelegt haben. Der Type ist immer MySQL, da auch MariaDB eine MySQl Datenbank ist. Der Port ist standardmäßig 3306. Theoretisch kann man den beim Einrichten von MariaDB auch ändern, sollte man ohne Not aber nicht tun. Falls man einen anderen Port verwendet, muss man das hier entsprechend anpassen.
Der "schwierigste" Part ist der host Bereich. Mit Abstand am besten ist es, wenn man hier eine feste IP Adresse (im Beispiel 192.168.1.24) zur Verfügung hat. Generell sollte jede Art von Server im Netz eine fest zugewiesene IP Adresse haben und darüber angesprochen werden. Das vereinfach das "Netzwerken" ungemein. Die IP Adressen kann man fest im Gerät zuordnen oder fast immer auch im Router, ohne die Gerätekonfiguration ändern zu müssen. So sieht das dann z.B. in der Fritzbox mit FritzOS 8 aus. Vergleichbare Einstellungen gibt es bei fast jedem Router. So bekommt der Server stets dieselbe feste IP Adresse zugewiesen, ohne das man am Gerät selbst irgendwas konfigurieren muss. Ich weise allen Geräten, die regelmäßig im Heimnetz sind, feste Adressen zu, nicht nur den "Servern". Damit läuft das Netz einfacher, stabiler und schneller.
Geht das aus irgendwelchen Gründen nicht, kann man hier auch den Hostnamen (im Beispiel "uhura") verwenden. Damit kommen aber nicht alle Geräte/Betriebssysteme zurecht.
Nun speichern wir unsere "advancedsettings
Die "neue" Datenbank ist ja noch leer und muss zunächst mal gefüllt werden. Dazu starten wir Kodi, irgendwo. Ich mache sowas immer auf meinem Desktop, aus denselben Gründen wie das Erstellen der "advancedsettings
Nun beginnt Kodi, die Medien aus dem Ordner in die Datenbank einzulesen. Das läuft exakt genau wie immer ab. Man kann beliebig viele Quellen anlegen mit verschiedenen Typen (Serien, Filme, Musik, Musikvideos, nicht kategorisierte Videos, Bilder,....) wobei Bilder nicht in die Kodi Datenbank eingelesen werden. Trotzdem sollte man sie auch jetzt schon einpflegen, denn so spart man sich das bei weiteren Kodi Klienten. Sind alle Datenquellen angelegt und alle Medien eingelesen, beendet man Kodi wieder. Nun sind im "Userdata" Verzeichnis auch folgende XML Dateien zu finden:
mediasources.xml
passwords.xml
sources.xml
Es gibt hier noch mehr xml Dateien, aber nur diese drei sind für uns jetzt von Bedeutung. Diese drei Dateien kopiert man zu der advancedsettings
Wenn wir jetzt die Kodi Hauptversion ändern (in der Regel "vergrößern"), dann müssen wir das zunächst auf einem Gerät machen. Startet man dort Kodi nach dem Upgrade, wird die Datenbank migriert. Das ist exakt so, wie "früher" mit den lokalen Datenbanken auch. Ist die Migration abgeschlossen, sind alle Medien in der neuen Datenbank vorhanden. Sobald man nun auf einem anderen Gerät die neue Kodi Hauptversion startet, ist die Datenbank bereits migriert und man kann nahtlos weiter machen. Bis dahin steht ja immer noch die "alte" Datenbank zur Verfügung, die man parallel weiter nutzen kann. Was nicht funktioniert ist das Synchronisieren der Gesehen Zustände. Die werden beim Migrieren der Datenbank auf dem ersten Kodi übernommen. Schaut man danach noch etwas mit einem "alten" Kodi, so wird das im "neuen" Kodi nicht automatisch als Gesehen gekennzeichnet. Man sollte also nicht all zu viel Zeit mit der Migration "verschwenden" bzw. ein externes Addon wie WatchedList zum Angleichen einsetzen. Bei wenigen Medien lässt sich das ganz gut auch komplett von Hand regeln. Beim Upgraden innerhalb der gleichen Hauptversion ist das in aller Regel kein Problem, denn die Datenbank ändert sich nicht (entscheidend) innerhalb derselben Hauptversion. Man kann also problemlos von Kodi 21.0 nach Kodi 21.1 wechseln und trotzdem auch längerfristig auf einem anderen Gerät weiterhin Kodi 21.0 verwenden. Bei Nightlies kann es vorkommen, das die DB sich "zwischendrin" ändert. Bei Stable Versionen aber nicht. Das ist halt das Risiko, wenn man Alpha oder Beta Versionen verwendet.