:::: MENU ::::

Base de données Kodi centralisée sur un serveur Mysql

Pour ceux qui possèdent plusieurs appareils exploitant le lecteur multimédia Kodi, il peut être intéressant de déporter la base de données sur un serveur centralisé MySQL afin de pouvoir gérer en un seul point l’ajout de nouveaux contenus ou encore la gestion des épisodes vus/non vus. Cela permet aussi de réduire la charge de travail du Raspberry Pi.

Dans mon cas, je déporte la base de données de ma bibliothèque multimédia afin de partager cette dernière entre le Kodi présent sur ma BBox Miami et le Raspberry Pi tournant sous Xbian présent dans ma chambre. J’installe le serveur MySQL sur mon Raspberry Pi mais si vous disposez d’un NAS ou d’un serveur il est recommandé de les utiliser en tant que serveur MySQL (la carte SD du Raspberry ne supporte que moyennement les écritures répétées d’un serveur de base de données).

Logo MySQLLogo Kodi

Les logos de MySQL et Kodi

⚠ Attention : vos fichiers multimédias (films, séries, musiques …) devront être situés sur un stockage partagé sur le réseau (NAS, disque dur externe …) afin que chaque appareil puisse y accéder. Le protocole de partage (Samba, NFS, AFP…) doit également être identique pour l’ensemble des clients Kodi, afin de conserver les mêmes chemins d’accès. De plus, la version de Kodi utilisée devra être identiques sur l’ensemble de vos terminaux.

Installation de MySQL

Nous allons commencer de manière habituelle en mettant à jour les paquets avant de lancer l’installation de MySQL :

Un mot de passe vous sera demandé durant l’installation, assurez-vous de vous en rappeler, ça sera le mot de passe root de votre serveur MySQL.

Configuration de MySQL

La configuration par défaut ne vous permet pas d’accéder (pour des raisons de sécurité) à votre serveur MySQL via le réseau (l’accès se fait uniquement en local sur le Raspberry Pi). Il faut donc dans un premier temps modifier la configuration de MySQL :

Trouvez la ligne bind-address = 127.0.0.1, vous pouvez :

  • La commenter ( #bind-address = 127.0.0.1 ), dans ce cas le serveur sera accessible depuis n’importe quelle adresse IP (à condition que la redirection de port soit correctement établie au niveau de votre box sinon ça sera depuis n’importe quelle adresse locale).
  • Définir la valeur à bind-address = 0.0.0.0  ce qui aura le même effet que la commenter.
  • Définir l’adresse IP du Raspberry ( bind-address = 192.168.1.22  par exemple). Le serveur MySQL sera alors accessible uniquement via un appareil relié au réseau local.

On redémarre le serveur pour appliquer les modifications :

Nous allons nous connecter à la base directement depuis le Raspberry Pi à l’aide de la commande :

Maintenant il faut savoir que l’utilisateur root créé lors de l’installation ne peut se connecter qu’en local par défaut. Si vous le désirez, vous pouvez autoriser une connexion via le réseau local à l’aide de cette commande :

Dans ce cas, en indiquant 192.168.1.%, l’utilisateur root pourra alors se connecter depuis n’importe quel ordinateur de notre réseau local. L’utilisation du wildcard % uniquement autorisa la connexion depuis n’importe quelle adresse IP. N’oubliez pas de changer le mot de passe avant d’exécuter la commande.

Logo MySQL WorkbenchPour que Kodi puisse utiliser notre base de données, nous avons uniquement besoin de créer un utilisateur (la première instance de Kodi lancée se chargera de créer les Schémas ainsi que les tables nécessaires). Pour faire cela, vous pouvez soit utiliser un logiciel d’administration de base de données (je recommande MySQL Workbench, disponible à cette adresse : https://www.mysql.fr/products/workbench/) ou vous pouvez le faire via la ligne de commande directement.

Pourquoi ne pas utiliser phpMyAdmin ? phpMyAdmin requiert l’installation d’un serveur web (couplé à un interpréteur PHP) sur le Raspberry. Or, dans notre cas, nous n’aurons pas l’utilité du serveur web, il est donc préférable d’utiliser des outils externes tels que MySQL Workbench qui font le boulot (voir mieux que phpMyAdmin). De plus il existe des versions portables de cet outil d’administration.

Kodi aura besoin de créer des schémas, des tables … Pour faire simple, nous allons donc lui attribuer tous les droits sur notre base de données :

Configuration de Kodi

Maintenant il faut configurer Kodi pour qu’il utilise la base de données MySQL. Pour cela il suffit de créer le fichier nommé advancedsettings.xml :

Enregistré maintenant ce fichier dans le dossier /home/xbian/.kodi/userdata/.

Voilà, il ne reste plus qu’à relancer Kodi. Ce dernier va se charger de créer les différents schémas et Tables nécessaires.

Une fois Kodi lancé, si l’on se connecte au serveur MySQL nous pouvons voir ces 2 schémas :

Schémas Kodi

Les schémas et tables générés par Kodi

Si le numéro situé en fin du nom des schémas est différent, c’est tout à fait normal. En effet ce dernier indique la version du schéma qui dépend donc de la version de Kodi.

Essayez maintenant le scan de nouveaux contenus, si jamais rien ne se passe, c’est notamment qu’il doit y avoir un problème de connexion à la base de données. Consultez alors les logs situés dans le dossier /home/xbian/.kodi/cache/temp/kodi.log afin de comprendre quel est le problème.

Il suffit de configurer de la même façon l’ensemble des clients Kodi que l’on souhaite mettre en commun. Il sera alors possible de commencer la lecture d’une vidéo sur un client Kodi et de reprendre à l’endroit exact où la lecture s’est arrêté depuis un second client. La mise à jour depuis un client mettra à jour l’ensemble des clients connectés à la base MySQL.

Pour plus d’informations concernant l’utilisation d’un serveur MySQL avec Kodi : http://kodi.wiki/view/MySQL

A propos de l'auteur :

Consultant Java/JEE/Android chez eBusiness Information en région parisienne et jeune diplômé Manager des Systèmes d'Information par l'eXia.CESI. Je suis passionné par la Raspberry Pi depuis sa sortie. J'ai réalisé plusieurs systèmes embarqués durant mon stage, utilisés maintenant en entreprise.


5 Comments

  • Répondre Julien Pagnier |

    Bonjour, j’ai suivi le tuto pour l’installation de la base de données plusieurs fois, est arrivé au stade ou je dois lancer Kodi après avoir copié les fichiers advancedsettings.xml dans les répertoires des applications Kodi, rien ne se passe sur le serveur MySQL, aucune table n’est créée.
    Pour info, j’utilise un nas Synology et Kodi en version 17.3 sur un pc windows, mon téléphone Android et ma TV Philips sous Android également.
    Merci d’avance pour votre aide

    • Manu Répondre Manu |

      Etrange comme problème. Ton serveur MySQL est sur le Synology ou sur un Raspberry Pi ?
      Je pencherai soit pour un problème de configuration dans le fichier « advancedsettings.xml » (problème d’adresse IP ou d’utilisateur) ou alors un problème de droit pour l’utilisateur de la base MySQL.
      Tu as bien laissé démarrer complètement ton Kodi ? Il arrive que le processus soit plus ou moins long, surtout suite à une mise à jour Kodi.
      J’ai une configuration similaire : média et base MySQL sur un NAS Synology et des clients Kodi sur Raspberry Pi, Macbook et smartphone Android. Le tout fonctionne très bien en partageant la même base de données.

  • Répondre Frederic EGGENSPIELER |

    Bonjour
    J’avais le mêmes soucis avec la base MySQL sur le NAS Synology. Kodi sur le rpi se connecte pour la 1er fois grâce au user guest. Sur mon Synology cette user était désactivé. Après activation le rpi arrive à se connecter à la base MySQL.

    • Manu Répondre Manu |

      Effectivement c’est une possibilité, de mon côté j’ai créé un user nommé « kodi » via phpmyadmin qui dispose de l’ensemble des droit ce qui évite les problèmes de désactivation.

Laissez un commentaire