Tutorial Raspberry PI: Servidor MySQL com base de dados XBMC
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 ?
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 |
Depois basta fazer o restart o serviço MySQL usando o comando: sudo service mysql restart
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
<advancedsettings> <videodatabase> <type>mysql</type> <host>***.***.***.***</host> <port>3306</port> <user>xbmc</user> <pass>xbmc</pass> </videodatabase> <musicdatabase> <type>mysql</type> <host>***.***.***.***</host> <port>3306</port> <user>xbmc</user> <pass>xbmc</pass> </musicdatabase> <videolibrary> <importwatchedstate>true</importwatchedstate> <importresumepoint>true</importresumepoint> </videolibrary> </advancedsettings> |
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.
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.
- 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. 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.
Este artigo tem mais de um ano
Nao se esqueçam que agora já nao é xbmc mas sim Kodi 🙂
Falta umas semanas ainda para o Kodi… ainda é beta 😉
Andei a fazer isto à umas 2 ou 3 semanas 🙂
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/
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).
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..
e para grandes bibliotecas numa rede basta ligar um disco externo a um router com usb..
não preciso um servidor
Livraria? Biblioteca meus caros.
Tirando isso, bom tutorial! ☺
Ia dizer o mesmo!
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 🙂
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.
Muito interessante sim sr!
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
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.
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?
agora tento por SSH, e nao consigo edtar o ficheiro… ‘Permission Denied !’
Como posso mudar isto?
estou com o user pi@raspberrypi:::
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?
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.