Gemeinsam genutzte MySQL Datenbank auf einer Synology DiskStation

  • Um eine Synology DiskStation als Host für eine MySQL Datenbank zu nutzen, bedarf es nur einiger weniger Schritte. In diesem HowTo gehen wir davon aus, dass die Synology auf die IP 192.168.100.101 hört.

    Zunächst einmal muss über den DS Manager SSH bzw. Telnet aktiviert werden. Dies geschieht auf dem derzeitigen DSM 3.2 unter Systemsteuerung -> Terminal. Gleiches gilt für die Nutzung von MySQL. Zu finden unter Systemsteuerung - Webdienste - MySQL aktvieren

    Externer Inhalt dl.dropbox.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Externer Inhalt dl.dropbox.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.


    Anschließend verbindet man sich per SSH oder Telnet als Benutzer root zur DiskStation. Unter Linux/OS X nimmt man hier z.B. den Terminal, unter Windows z.B. PutTTy.

    Linux/OS X:

    Externer Inhalt dl.dropbox.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Windows:

    Externer Inhalt dl.dropbox.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.


    Das root Passwort ist gleich dem admin Passwort für den Syno-Manager. Wenn Ihr verbunden seit, setzt folgenden Befehl ab um ins MySQL Prompt zu gelangen:

    /usr/syno/mysql/bin/mysql

    Dass ihr im MySQL Prompt seid, erkennt ihr am 'mysql >' im Terminal/in PuTTy. Folgende Befehle sind für die Erstellung und die Rechtsanpassung eines Datenbank Benutzers nötig:

    CREATE USER 'xbmc' IDENTIFIED BY 'xbmc';
    GRANT ALL ON *.* TO 'xbmc';
    exit

    Die in diversen anderen Tutorials genannten Befehle um gezielt Datenbanken anzulegen sind ab XBMC Eden nicht mehr nötig, die Datenbanken werden mit dem eben erstellen Nutzer 'xbmc' selbständig angelegt!.
    MySQL ist damit bereits erledigt, die Installation vom phpMyAdmin ist nicht notwendig und somit optional. Ihr könnt Terminal/PuTTy mittels "exit" beenden.

    Eure XBMC Installation sollte zumindest einmal gestartet werden, damit XBMC den sogenannten userdata Ordner anlegt. Wo ihr den anschließend unter welcher Distribution findet, ist hier beschrieben.

    In diesen userdata Ordner muss nun eine von Euch angelegte '[definition='2','1']advancedsettings[/definition].xml', damit das XBMC weiß, wo es die Datenbanken findet. Diese [definition='2','1']advancedsettings[/definition].xml kann auf allen Clients gleich sein und sollte mindestens folgenden Inhalt haben:


    Bitte achtet auf ihr darauf, dass das je nach Ordnername/IP Adresse der Synology variieren kann. Beim erneuten XBMC Start greift eure Installation ab jetzt auf die zentrale MySQL zu.

    Ich nutze diese Konfiguration erfolgreich auf zwei ATV2s und einer OS X Installation, aber auch ein iPad oder ein Windows/Linux XBMC können problemlos zugreifen, die passende [definition='2','1']advancedsettings[/definition].xml vorausgesetzt.

    iPhone & iPad Nutzer aufgepasst:
    Wenn ihr mit dieser Konfiguration unterwegs seid, wird XBMC unter Umständen nicht mehr starten, da es die Datenbanken nicht finden kann. Hier empfiehlt sich die Nutzung von Profilen, z.B. ein "at Home" Profil, und evtl eins für unterwegs.


    Troubleshooting
    Sollte es zu Problemen kommen, prüft bitte erstmal euer Log-File. Oftmals lassen sich Fehler dort bereits erkennen. Solltet ihr damit nicht weiterkommen und Hilfe benötigen, ladet den Inhalt eures Logs auf z.B. pastebin.com hoch und fragt einfach hier nach. Ohne Log File sind Hilfestellungen oftmals ins Blaue geraten..

    19 Mal editiert, zuletzt von Ben (17. Februar 2014 um 23:57)

  • Ich hatte mit dem TS-112 QNAP Probleme mit dem SQLBenutzer. Letztendlich hat es erst geklappt, als ich den root-Benutzer für alle Zugriffe umgebogen habe. Davor hat er immer wieder versucht Datenbanken umzukopieren. Welche Rechte gefehlt haben, habe ich noch immer nicht verstanden. Danach hatte ich jedenfalls zwei Datenbanken xbmc_video und xbmc_58 oder so...

    Externer Inhalt trakt.tv
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
  • Hallo Don. Ich habe selber 2 Qnaps und möchte das gerne auch auf meinem TS639Pro nutzen. Weißt Du wie das dort geht? Ich wäre für jede Hilfe dankbar, da ich mich mit Mysql nicht auskenne.
    r0m123 wie bist du hier vorgegangen. Schritt für Schritt wäre super

  • Bin jetzt schon ein Schritt weiter und XBMC auf meinem HTPC liest gerade die Filmdatenbank auf dem Mysql-Server der Qnap ein. Jetzt aber zwei Fragen:
    1. Bei manchen Filmen fehlen die Poster, obwohl die jpg jeweils im Filmordner vorhanden sind. Woran kann das liegen?
    2. Ich will nun auf dem ATV2 die selbe Datebank benutzen. Ich muß nun in den userdata Ordner die [definition='2','1']advancedsettings[/definition].xml schieben. Muß ich danach die Verzeichnisse ebenfalls wieder
    unter "Video" anlegen oder wie liest er jetzt direkt die Datenbank vom Mysql-Server ein ?

    Danke für Eure Hilfe.

  • Beim Qnap ist das eigentlich ganz einfach:

    Unter "Systemsteuerung" / "Netzwerkdienst" müssen "Microsoft-Netzwerk" und "NFS-Netzwerk" aktiviert sein.

    Externer Inhalt dl.dropboxusercontent.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Externer Inhalt dl.dropboxusercontent.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Der Webserver, zu finden unter "Systemsteuerung / "Anwendungen" / "Webserver" ist standartmäßig aktiviert. Ggf. überprüfen und aktivieren.

    NFS nutzte ich für die Verbindung zu XBMC unter Linux, wird unter Windows/XBMC nicht benötigt. Den Webserver benötigen wir für phpMyAdmin.

    Bei den MySQL Einstellungen noch den Haken "TCP/IP-Netzwerk aktivieren" setzen.

    Externer Inhalt dl.dropboxusercontent.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Dann unter "App Center" phpMYAdmin installieren.

    Externer Inhalt dl.dropboxusercontent.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Ist alles fertig sollte man unter http://QnapIP/phpMyAdmin das Frontend starten können.

    Externer Inhalt dl.dropboxusercontent.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Die Standart Anmeldesaten sind:
    Benutzername: root
    Password: admin

    Nach der Anmeldung sieht das ganze so aus:

    Externer Inhalt dl.dropboxusercontent.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Dort dann oben auf den Reiter "SQL" klicken und folgenden Text reinkopieren, dann "OK" klicken:

    Code
    CREATE USER 'xbmcuser' IDENTIFIED BY 'xbmcpass';
    GRANT ALL ON *.* TO 'xbmcuser';

    Externer Inhalt dl.dropboxusercontent.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Nachvollziehbar ist "xbmcuser" der Benutzername und "xbmcpass" das Password. Beides kann nach belieben geändert werden.

    Das wars dann auch schon auf der Qnap Seite.

    Bei XBMC in der [definition='2','1']advancedsettings[/definition].xml die entsprechenden Daten eingeben:

    Externer Inhalt dl.dropboxusercontent.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Bei Host die eigene QnapIP oder den entsprechenden Netzwerknamen eingeben.

    In meinen Fall habe ich auf meinen Qnap ein Ordner "XBMC/XBMCdb" angelegt. Der Unterordner "Thumbnails" wird für die XBMC Thumbnails genutzt. Dieser Ordner kann nach belieben geändert werden.
    Statt mit "nfs://..." kann man das ganze auch mit "smb://..." angeben - je nach dem ob man das "NFS-" oder "Windows-Netzwerk" nutzt.

    Sollte man NFS nutzen, muss man auf der Qnap Admin Seite unter "Zugriffskontrolle/Freigabeordner" den jeweiligen Ordner raussuchen und die NFS Freigabe aktivieren

    Externer Inhalt dl.dropboxusercontent.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Externer Inhalt dl.dropboxusercontent.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Viel mehr ist es gar nicht.

    2 Mal editiert, zuletzt von brinckuw (10. August 2014 um 16:08) aus folgendem Grund: Bilder aktualisiert.

  • Musst nichts anlegen, er liest die DB ein. Nur falls du gesonderte Quellen brauchst die nicht in der DB auftauchen, dann musste die anlegen.

  • Wenn du ein Backup deiner DB hast (z.B. von Dharma noch) empfehle ich eigentlich einen seperaten Export direkt auf die Shares. Vorteil: Du hast ALLE relevanten Daten in den jeweiligen Filmen-/Serienordnern und beim Rescrape geht nie wieder etwas verloren. Und auf die paar mehr MB kommts wahrlich nicht an. Ich exportiere ca. 1x die Woche wenn ich größere Mengen eingelesen hab und habs bislang nie bereut. Da ich ständig bastele und mir auch gerne mal was zerschieße war der Reimport bislang immer vollständig und vor allem superschnell ;) Gleiches würde wahrscheinlich auch für den DB Export 'einzeln' gelten, aber ich habs lieber direkt im Share liegen, zumal bei 'seperat' die Pfade nicht mit exportiert werden und man somit auch mal fix die Quellen ändern kann. Rescrape und gut is.

    Hier aber auch eine kleine Warnung: Ich meine mich erinnern zu können, dass bei gepackten Filmen/Serien der seperate Export spinnt und einiges durcheinander würfelt. Also das bitte berücksichtigen und vllt auch mal vorsichtig testen. (Ich hab nichts mehr gepackt, daher läuft auch alles wie geschmiert)

  • Wenn du die XML hast, dann hast du ja ein Backup. Kannst es ja mal versuchen. Ansonsten hab ichs anfangs so gemacht, dass ich jeweils 10-20 Filme in den korrekten Share-Ordner gepackt, diesen gescannt und kontrolliert habe, ob alle erkannt wurden, ggf manuell korrigiert. Und das halt nach und nach mit allen, immer so 10-20er Pakete. Nervt, aber diese Arbeit macht man sich ja nur einmal. Anschließend (oder auch zwischendurch) ein Export und man hat die Daten jederzeit zur Hand, falls die DB wirklich mal crashen sollte.

  • So..eben nochmals versuch gemacht. Datenbank im XBMC belassen und nur die [definition='2','1']advancedsettings[/definition].xml reinkopiert. Auch hier lioeßt der dann nur gut 1/3 der Filme ein. Die anderen ignoriert er. Ich habe auch Filme selber auf der Qnap liegen und hier scheint er die meißten zu ignorieren. Woran kann das liegen?

  • Das könnte natürlich des Rätsels Lösung sein. Ich hatte hier die Sache vom HTPC aus gemacht der interne Platten hat. Würde ja auch einem anderen Client nicht bringen. Zudem hatte ich hier noch Multipath angelegt. Ich versuche jetzt mal alle Quellen einzeln über smb und berichte.

  • Eine Frage noch. Geht das hier auch mit Musikvideos. Die werden zwar erfasst, lassen sich aber nur vom Hauptrechner abspielen. Auf den Clients tauchen die zwar dann auf sind dann aber nicht verfügbar

  • Hallo zusammen,

    ich bin auch relativ neu in der XBMC Welt, aber total begeistert von den unendlichen Möglichkeiten und der umfangreichen Dokumentation!
    Nachdem ich aber nun schon einige Foren durchforstet habe, bin ich leider noch nicht auf die Lösung meines Problems gekommen.

    Mein Setup: QNAP TS-119P II mit Segate Barracuda 3TB (mit der IP 192.168.178.30) und als XBMC Clients ein Lenovo Notebook sowie ein Apple TV 2 (beides mit dem aktuellen Eden).

    Mein Ziel: Filme und Serien (jeweils inkl. der Metadaten) vom NAS zu streamen.

    Aktueller Stand: [definition='2','1']advancedsettings[/definition].xml ist angelegt (Inhalt siehe unten), Freigabe des Ordners xbmcthumbs auf dem NAS ist eingerichtet, Datenbankuser ist über phpMyAdmin eingerichtet und mit den nötigen Rechten versehen.

    Mein Problem: XBMC hat ein Problem mit der MySQL Datenbank umzugehen. Leider habe ich keine Ahnung von Datenbanken und konnte mir durch sonstige Posts oder Tutorials nicht selbst helfen. Daher wäre ich sehr froh, wenn mir jemand das Error-Log interpretieren und einen Lösungstipp geben könnte!


    [expander]
    21:52:48 T:3344 M:2207272960 NOTICE: Loaded [definition='2','1']advancedsettings[/definition].xml from special://profile/[definition='2','1']advancedsettings[/definition].xml
    21:52:48 T:3344 M:2207272960 NOTICE: Contents of special://profile/[definition='2','1']advancedsettings[/definition].xml are...

    <[definition='2','1']advancedsettings[/definition]>
    <videodatabase>
    <type>mysql</type>
    <host>192.168.178.30</host>
    <port>3306</port>
    <user>xbmc</user>
    <pass>xbmc</pass>]
    <name>xbmc_video</name>
    </videodatabase>
    <musicdatabase>
    <type>mysql</type>
    <host>192.168.178.30</host>
    <port>3306</port>
    <user>xbmc</user>
    <pass>xbmc</pass>
    <name>xbmc_music</name>
    </musicdatabase>
    <pathsubstitution>
    <substitute>
    <from>special://masterprofile/Thumbnails/</from>
    <to>smb://xbmc:xbmc@192.168.178.30/xbmcthumbs</to>
    </substitute>
    </pathsubstitution>
    </[definition='2','1']advancedsettings[/definition]>

    21:52:48 T:3344 M:2207264768 WARNING: VIDEO database configuration is experimental.
    21:52:48 T:3344 M:2207264768 NOTICE: Getting hardware information now...
    21:52:48 T:3344 M:2207264768 NOTICE: Checking resolution 12
    21:52:48 T:3344 M:2207264768 NOTICE: Default DVD Player: dvdplayer
    21:52:48 T:3344 M:2207264768 NOTICE: Default Video Player: dvdplayer
    21:52:48 T:3344 M:2207264768 NOTICE: Default Audio Player: paplayer
    21:52:48 T:3344 M:2207256576 NOTICE: Loading media sources from special://masterprofile/sources.xml
    21:52:49 T:3344 M:2187395072 NOTICE: initializing playlistplayer
    21:52:49 T:3344 M:2187395072 NOTICE: DONE initializing playlistplayer
    21:53:23 T:3344 M:2184204288 ERROR: SQL: Undefined MySQL error: Code (1071)
    Query: CREATE UNIQUE INDEX ix_path ON path ( strPath )
    21:53:23 T:3344 M:2184175616 ERROR: CVideoDatabase::CreateTables unable to create tables:0
    21:53:33 T:3344 M:2184683520 ERROR: SQL: The table does not exist
    Query: select count(1) from tvshow
    21:53:33 T:3344 M:2184679424 ERROR: CVideoDatabase::HasContent failed
    21:53:43 T:3344 M:2197491712 ERROR: SQL: The table does not exist
    Query: select count(1) from musicvideo
    21:53:43 T:3344 M:2197491712 ERROR: CVideoDatabase::HasContent failed
    21:53:43 T:3344 M:2192027648 NOTICE: CApplication::UpdateLibraries - Starting video library startup scan
    21:53:55 T:3344 M:2194534400 ERROR: SQL: The table does not exist

    Query: select strPath,noUpdate from path where ( strContent =
    'tvshows' or idPath in (select idPath from tvshowlinkpath)) and
    strPath NOT like 'multipath://%' order by strPath
    21:53:55 T:3344 M:2194526208 ERROR: CVideoDatabase::GetPaths failed
    21:53:55 T:3344 M:2194526208 NOTICE: initialize done
    21:53:55 T:3344 M:2194526208 NOTICE: Running the application...[/expander]

    Vielen Dank im Voraus und viele Grüße!

    Christoph

Jetzt mitmachen!

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