MySQL: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
{{Editor note|Intro about what this is and how cool it is to sync XBMC libraries goes here. Include "start watching on one, finish on another", watched ticks, etc.}}
{{Editor note|Intro about what this is and how cool it is to sync XBMC libraries goes here. Include "start watching on one, finish on another", watched ticks, etc.}}


__TOC__


==Selecting a server==
==Selecting a server==

Revision as of 06:37, 14 November 2011

Editor note: Intro about what this is and how cool it is to sync XBMC libraries goes here. Include "start watching on one, finish on another", watched ticks, etc.

Selecting a server

First you'll need to choose which of your XBMC devices (or NAS) will be the MySQL server. The server needs to be on 24/7 or have wake-on-lan (preferably the former), and needs to have a local static IP. You will probably want the XBMC device that is hosting most or all of your videos and music to also be the MySQL server, but this is not required.

MySQL can be installed on every major desktop OS and even a few stand-alone NAS devices.

Setting up the MySQL server

  1. Download a copy of MySQL server for your OS: http://dev.mysql.com/downloads/mysql/
  2. Run the installer and select the Standard configuration
  3. Create a password when asked
  4. Select that you want the database to have network access
  5. Get into the MySQL command line interface.
    Windows: Open the "MySQL Command Line Client" from the MySQL start menu
    1. Type in: CREATE USER 'xbmc' IDENTIFIED BY 'xbmc'; and press return
    2. Type in: CREATE database xbmc_video; and press return
    3. Type in: CREATE database xbmc_music; and press return
    4. Type in: GRANT ALL ON *.* TO 'xbmc'; and press return
  6. Close out the command line tool

Setting up XBMC

Requirements: You should have at least XBMC v10 for these instructions. Each XBMC device should be running the same version of XBMC. If you are running a pre-v11 nightly, make sure the nightly build dates are the same (or at least close) for each device.


advancedsettings.xml:
<advancedsettings>
    <videodatabase>
        <type>mysql</type>
        <host>***.***.***.***</host>
        <port>3306</port>
        <user>xbmc</user>
        <pass>xbmc</pass>
        <name>xbmc_video</name>
    </videodatabase> 

    <musicdatabase>
        <type>mysql</type>
        <host>***.***.***.***</host>
        <port>3306</port>
        <user>xbmc</user>
        <pass>xbmc</pass>
        <name>xbmc_music</name>
    </musicdatabase>
</advancedsettings>
  1. Open XBMC on the computer that has the library you want to share (If you have not created a library yet you can skip this step)
    Notice: If your video library contains local file paths (e.g. C:\Videos\) instead of network file paths (such as SMB shares) then this will not work. You will need to convert your exported library files by following these instructions. <-Need a link or new wiki page for this
    1. Export the Video Library by doing the following:
      1. Go to System/Settings -> Video -> Library and select Export library
      2. Select Single file
    2. Export the Music Library by doing the following:
      1. Go to System/Settings -> Music -> Library and select Export library
      2. Select Single file
  2. Create (or add to, if you already have one) an advancedsettings.xml file:
    1. Open up a plain text editor
    2. Copy and paste the text from the right-hand box into a new text document
    3. Replace the two instances of <host>***.***.***.***</host> with local network IP address of your MySQL server
    4. Save the file as advancedsettings.xml
  3. Copy this advancedsettings.xml file you just created to the userdata folder of every XBMC install you want to sync with:
    • Windows XP: Documents and Settings\<your_user_name>\Application Data\XBMC\userdata\advancedsettings.xml
    • Vista/Windows 7: Users\<your_user_name>\AppData\Roaming\XBMC\userdata\advancedsettings.xml
    • Mac OS X: /Users/<your_user_name>/Library/Application Support/XBMC/userdata/advancedsettings.xml
    • iOS: /private/var/mobile/Library/Preferences/XBMC/userdata/advancedsettings.xml
    • Linux: $HOME/.xbmc/userdata/advancedsettings.xml
  4. Open any of your XBMC installs and re-import your library data (If you have not created a library yet you can skip this step)
    1. Import the Video Library by doing the following:
      1. Go to System/Settings -> Video -> Library and select Import library
      2. Select the file you saved from the first step when you exported your video library
    2. Import the Music Library by doing the following:
      1. Go to System/Settings -> Music -> Library and select Import library
      2. Select the file you saved from the first step when you exported your music library
  5. You can now add files and update the library from any of your XBMC boxes and the library for all of them will stay in sync.

Syncing thumbnails and fanart

Requirements: These instructions require the latest nightly build of XBMC (pre-Eden v11)


add to advancedsettings.xml:
  <pathsubstitution>
    <substitute>
      <from>special://masterprofile/Thumbnails/</from>
      <to>REPLACE_THIS_TEXT</to>
    </substitute>
  </pathsubstitution>

The Thumbnail folder in XBMC contains both thumbnails and fanart. If you have imported from pre-existing Libraries then you can use your old thumbnail folder to save time on re-downloading images <- I can't remember if this is true or not.

  1. Share your existing Thumbnail folder or a new folder via NFS, SMB, or AFP. It's easiest to do this from the same computer/device as your MySQL server.
    • Windows XP: Documents and Settings\<your_user_name>\Application Data\XBMC\userdata\Thumbnails\
    • Vista/Windows 7: Users\<your_user_name>\AppData\Roaming\XBMC\userdata\Thumbnails\
    • Mac OS X: /Users/<your_user_name>/Library/Application Support/XBMC/userdata/Thumbnails/
    • iOS: /private/var/mobile/Library/Preferences/XBMC/userdata/Thumbnails/
    • Linux: $HOME/.xbmc/userdata/Thumbnails/
  2. Copy the text from the right hand box and add it to your advancedsettings.xml file, but make sure you add the text before the </advancedsettings> tag at the end.
  3. Note/copy the network path of your shared Thumbnails folder and use that to replace REPLACE_THIS_TEXT.
  4. Make sure all XBMC devices that are being synced have this addition to their advancedsettings.xml file.

Using profiles and MySQL libraries

Editor note: Note that you can use profiles to switch between a local library and a MySQL library, or even two different MySQL libraries. Also note "roaming profiles" concept for portable device users to prevent XBMC from freezing up (for example see: forum:92807)