Linux

Tutorial Raspberry PI: Servidor MySQL com base de dados XBMC

18 Comentários

Por Diogo Santos  para o Pplware

De volta aos nossos tutoriais para Raspberry PI, hoje trazemos uma sugestão muito interessante: Instalar e configurar um servidor MySQL com base de dados XBMC. Isto é útil no caso um utilizar ter vários dispositivos com o XBMC, numa rede local, e pretende que todos estejam sincronizados.

Vejam como é fácil! Para quem ainda não tem um Raspberry PI, já viram a nossa super promoção ?

mysql_10

Usando uma biblioteca MySQL é possível guardar informação sobre todos os nossos conteudos (musica/vídeos/fotos) numa base de dados central, de modo a que múltiplos sistemas XBMC possam aceder a essa mesma informação ao mesmo tempo. As principais vantagens desta solução são:

  • Partilha do estado visto/não visto em todos os dispositivos
  • Parar um filme ou um episodio de uma série na sala e resumir no quarto por exemplo
  • Apenas uma biblioteca a manter para todos os dispositivos

Para esta solução é necessário uma máquina 24/7 ligada e o Raspberry é uma excelente solução para tal cenário um vez que tem um consumo energético muito baixo. O Raspberry irá conter toda a nossa biblioteca multimédia em discos ligados por USB, mas a vossa biblioteca pode estar em qualquer local na rede desde que esteja sempre disponível. Com a evolução recente de alguns add-ons para o XBMC é até possível adicionar conteúdo online à nossa biblioteca não sendo necessário ter o ficheiro armazenado na nossa rede.

Procedimento
1º Instalar o Mysql no Raspberry Pi

Abrir um terminal e executar:

sudo apt-get install mysql-server

(inserir password à escolha para o root user do mysql)

2º Configurar o MySQL

De modo a que o MySQL pode ser acedido a partir de qualquer máquina na rede, é necessário efectuar a seguinte alteração: Editar o ficheiro /etc/mysql/my.cnf ir à linha

bind-address = 127.0.0.1

e mudar para

bind-address = 0.0.0.0

mysql_05 Depois basta fazer o restart o serviço MySQL usando o comando: sudo service mysql restart mysql_06

3º Criar um utilizador no Mysql e definir permissões

Num terminal executar:

mysql -u root -p

(inserir a password do root do mysql)

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

No final devem voltar a reiniciar o serviço MySQl: sudo service mysql restart

4º Tornar os ficheiros multimédia acessíveis através da rede

Na distribuição Pipplware iremos usar o serviço Samba que já vem configurado, poupando assim algum trabalho. Podem usar outros protocolos de rede com o NFS e AFP. Como já referimos os nossos ficheiros não têm necessariamente estar alojados no Raspberry, basta apenas que o RPi tenha acesso a estes. Podem estar até em vários locais diferentes na rede até mesmo na internet.

5º Configurar todas as instâncias do XBMC a sincronizar

Devemos agora configurar todos os equipamentos que tivermos com o XBMC de modo a usar a base de dados partilhada. Criar ou adicionar o seguinte advancedsettings.xml


  
    mysql
    ***.***.***.***
    3306
    xbmc
    xbmc
   
  
    mysql
    ***.***.***.***
    3306
    xbmc
    xbmc
  
  
    true
    true
  

Alterar ***.***.***.*** pelo IP do servidor MySQL, neste caso o Raspberry. Copiar o ficheiro advancedsettings.xml criado para a pasta “userdata” de todas as instalações do XBMC que desejam sincronizar e reiniciar todos XBMCs para as alterações fazerem efeito. mysql_07

6º Exportar uma biblioteca local existente (opcional):

Este passo é apenas necessário se já têm uma biblioteca local (numa instalação do XBMC) configurada e a pretendem migrar para a base de dados MySQL. Isto irá fazer um backup de toda a informação referente á sua biblioteca local, para onde estão os seus ficheiros multimédia de modo a ser usada posteriormente na base de dados MySQL. Isto inclui ficheiros .nfo com informação do vídeo/musica, artwork, etc. No XBMC ir a

  • Sistema/Definições > Vídeo > Biblioteca > Exportar biblioteca de vídeo > Separados

Fazer o mesmo para a musica se desejável:

  • Sistema/Definições > Musica > Biblioteca > Exportar biblioteca de musica > Separados
7º Importar / configurar uma biblioteca usando a base de dados MySQL

Se já copiaram o advancedsettings.xml para os vossos dispositivos, agora todos os XBMCs estarão a usar a base de dados do servidor MySQL, portanto a base de dados está em branco. Se ainda têm a biblioteca que estava a usar a base de dados local definida devem removê-la, (Definir conteúdo -> Nenhum). Agora podemos importar a biblioteca antiga ou configurar uma nova. Podem importar a biblioteca usando a opção com o mesmo nome mas este método não é recomendado. Dependendo do tamanho da vossa biblioteca este processo poderá demorar algum tempo pelo que aconselhamos agora a usarem o vosso dispositivo mais rápido com o XBMC para o resto do processo.

  • Ir a Vídeos > Ficheiros > Adicionar vídeos > Rede Windows (SMB) > RASPBERRYPI > Devices -> local onde têm os vídeos -> Definir Conteúdo de acordo

Fazer o equivalente para as músicas se desejado. Agora podem adicionar arquivos e actualizar a biblioteca a partir de qualquer um dos seus dispositivos XBMC que a biblioteca para todos eles vai ficar em sincronia automaticamente. mysql_08

  • NOTAS: Se fizeram o backup da vossa antiga biblioteca como indicado em cima este processo será rápido e ficarão com uma biblioteca idêntica à anterior
  • Ao definirem o conteúdo é importante que escolham um caminho de rede (ex: smb://192.168.2.100/Media/Filmes) mesmo que o dispositivo com os ficheiros seja local, caso contrário o MySQL não funcionará correctamente.
  • Se usarem password nas vossas partilhas de rede, terão que copiar ou sincronizar também o arquivo passwords.xml da pasta “userdata” para cada dispositivo XBMC. As credenciais de acesso a discos partilhados pela rede Windows (Samba) no Pipplware são: user: pi / password: raspberry
  • Todas as versões do XBMC/KODI convém serem as mesmas, por exemplo 13.X, 14.X, etc, caso contrário isto poderá não funcionar correctamente.
8º Adicionar novos dispositivos XBMC á configuração MySQL

Para qualquer novo dispositivo XBMC que queira adicionar á configuração basta apenas copiar o advancedsettings.xml (e passwords.xml caso necessário) para a pasta userdata desse dispositivo. Não é necessário fazer rescanning ou re-importação. Se funciona em um dispositivo XBMC então deve funcionar em todos eles, uma vez que a base de dados é agora a mesma. mysql_09 E está feito, esperamos que tenham gostado. Num próximo tutorial iremos ensinar como fazer uma pequena optimização e backup automático da base de dados MySQL.

Autor: Pedro Pinto
Partilhar:
Também pode gostar

Comentários

18

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Pedro
    Pedro

    Nao se esqueçam que agora já nao é xbmc mas sim Kodi 🙂

    1. Avatar de Nuno Pereira

      Falta umas semanas ainda para o Kodi… ainda é beta 😉

  2. Avatar de Modem
    Modem

    Andei a fazer isto à umas 2 ou 3 semanas 🙂

    1. Avatar de ptpedropt
      ptpedropt

      eu tenho uma solução melhor, porque uso a cloud, por exemplo onedrive, + symbolic links
      melhor porque usa cloud em vez da rede local, logo nao é preciso nenhum servidor e alem disso também é mais simples de configurar

      depois de instalar o xbmc e o onedrive (ou outra cloud) em todos os pc’s

      mover a pasta
      XBMC em %userprofile%\appdata\Roaming\
      ou (caso utilizem)
      portable_data em C:\Program Files (x86)\

      para a pasta do onedrive

      deixar sincronizar com a cloud e colocar todos os ficheiros offline..

      depois basta em cada um dos pc’s criar um symbolic link ou vinculo simbolico da pasta XBMC que agora está no onedrive para o local onde estava, %userprofile%\appdata\Roaming\(..)
      (é como se fosse um atalho mas funciona como uma pasta real no windows)

      e está pronto..

      para quem não sabe o que é um symblic link e quer aprender a usar
      http://www.howtogeek.com/howto/16226/complete-guide-to-symbolic-links-symlinks-on-windows-or-linux/

      1. Avatar de Rascas
        Rascas

        Tb é uma opção, mas mais fraca na minha opinião.

        Ter isso na cloud pode ou não ser uma vantagem, depende da pessoa.

        Se configurares um servidor VPN, que tb já foi feito aqui um tutorial para o Raspberry, tens tb acesso em todo o lado, inclusive os ficheiros multimédia, para além da ligação ser encriptada.

        Isso pelo facto de estar na cloud é mais lento, especialmente para grandes bibliotecas.

        Duvido que funcione correctamente se usares diferentes sistemas operativos (windows, linux, android).

        1. Avatar de ptpedropt
          ptpedropt

          sim, para grandes bibliotecas a melhor opção é a rede local

          mas para sincronizar todos os usuarios, apps, configurações, etc, do xbmc, esta opção serve

          como os symbolic links tambem funcionam nos outros sistemas, então, no problem..

          1. Avatar de ptpedropt
            ptpedropt

            e para grandes bibliotecas numa rede basta ligar um disco externo a um router com usb..
            não preciso um servidor

  3. Avatar de João Simões

    Livraria? Biblioteca meus caros.

    Tirando isso, bom tutorial! ☺

    1. Avatar de Gonçalo
      Gonçalo

      Ia dizer o mesmo!

    2. Avatar de Rascas
      Rascas

      Neste caso “base de dados” é que seria o correcto 😉
      Pedimos desculpa pelos erros ortográficos, pode ser que o Pedro Pinto veja e os corrija 🙂

      1. Avatar de Pedro Pinto

        Rascas, espera, isto não são erros ortográficos ! 🙂 O termos que usaste não é descabido de todo, até porque à frente voltaste a usar termo biblioteca para (audio, video, etc). Penso que agora está melhor.

  4. Avatar de rmcrys
    rmcrys

    Muito interessante sim sr!

  5. Avatar de Fancisco Santos
    Fancisco Santos

    Nao consigo fazer o que me pedem no ponto 2.

    Ao gravar as alterações em /etc/mysql/my.cnf dá-me erro:
    Error writing /etc/mysql/my.cnf: Permission denied

    1. Avatar de Pedro Simões

      Estás a usar um user com permissões para escrever nesse ficheiro ou pelo menos a usar o sudo ou o su?

      Esse erro mostra que o utilizador que estás a usar não tem essas permissões.

      1. Avatar de Francisco Santos
        Francisco Santos

        Estava a fazer remotamente (usando a app do windows de Remote Control) do meu pc e entre normalmente.

        Existe outra forma de fazer isto? Devo fazer directamente na linha de comandos do raspberry?

        1. Avatar de Fancisco Santos
          Fancisco Santos

          agora tento por SSH, e nao consigo edtar o ficheiro… ‘Permission Denied !’

          Como posso mudar isto?

          estou com o user pi@raspberrypi:::

  6. Avatar de Márcio Soares
    Márcio Soares

    Boas, tenho um Raspberry pi a fazer servidor de owncloud e NAS já tem mysql instalada e user criado.
    Posso usar este para sincronizar a biblioteca dos meus Kodis? Já agora, numa segunda casa onde também há um Kodi, é possível usar a mesma BD para sincronizar as bibliotecas? Por exemplo no xml em vez de por o IP colocava o endereço remoto.
    Já testaram isso?

  7. Avatar de Genilson
    Genilson

    Tenho o kodi instalado no raspberry e um HD na rede. Como faço para colocar toda biblioteca no HD que está instalado na rede com o servidor MySQL rodando no Raspberry? É só mudar o IP do arquivo settings para o HD da rede? Pergunto isso porque faço vários testes no raspberry e toda hora tem que fazer a biblioteca do zero, já que salva tudo no cartão sd do sistema operacional do raspberry.