From Official Kodi Wiki
Jump to navigation Jump to search

Share libraries w/MySQL, guide:

  1. Introduction
  2. Setting up MySQL
  3. Setting up Kodi
Home icon grey.png   ▶ MySQL ▶ Upgrading

When updating to a new version, XBMC will make a copy of the current DB and upgrade the copy. That way if anything goes wrong in the upgrading you still have an original untouched copy of your DB.

Starting in XBMC v12 "Frodo", you no longer need to use path substitution to sync thumbnails and other art between XBMC devices. Using path subs is still supported, which is useful for XBMC devices with small amounts of memory.

Note: Updating your library may take a few minutes, so be sure to give XBMC time to do its thing. Stopping midway will mess up the updated DB.

1 Backing up the database


Even though XBMC makes a copy of your DB and updates that, it is still highly recommended to export your library from your current version before beginning the upgrade process. You don't want to find yourself starting your library from scratch, and it's better to be safe than sorry.

It's also a good idea to make periodic backups of your library even if you are not updating XBMC. Disks can fail, bugs can happen, and if you've put a lot of time in setting up your library then you should play it safe.

To backup simply export the library to a single file using Settings -> Videos -> Library -> Export library and select "multiple files". "Single file" also works, but "multiple files" is recommended as it is the most fail-safe method, especially for saving/resorting images.

2 Making sure MySQL can update the library

Note: If you originally set up MySQL using this XBMC Wiki guide then you should not have to worry about this section. It never hurts to double check the settings, though.

For XBMC to update the library from a previous version, you may need to make changes to your MySQL server. The user made for the MySQL DB ("xbmc" in most guides) will need access to create new databases. If the user already has that access then you don't need to do anything. If not, you will have to use the following command on your MySQL server:

GRANT ALL ON *.* TO 'xbmc';

If you are worried about security then you can limit XBMC's access in MySQL once it has created the new video DB. However, you will need to re-grant these privileges the next time you update XBMC. If the only thing you use MySQL for is XBMC then you don't really need to worry about security.

3 Thumbnails

Note: This only applies for upgrading from XBMC v11 to XBMC v12.

4 Common problems

4.1 Upgrade fails

  1. Downgrade XBMC on one of your XBMC devices to the previous version of XBMC (you only need to do this to one device). Export the library to multiple files using Settings -> Videos -> Library -> Export library and select "multiple files".
    Note: If you backed up your XBMC database, you can use that backup in place of this first step.
  2. Quit XBMC
  3. Place <importwatchedstate>true</importwatchedstate> in your advancedsettings.xml file on the downgraded XBMC device.
  4. If you used the <name> tag in your advancedsettings.xml file, remove these lines. XBMC will simply use default database names instead (MyVideos and MyMusic). Sometimes using the <name> tag will cause issues when updating the MySQL libraries, but the tag is not needed as of XBMC v11.
  5. Use the MySQL configuration utility to drop/delete the existing MySQL copies of the XBMC database(s).
    1. When using phpMyAdmin: select Databases option from the top of the screen, put a checkbox in front of all databases called MyMusic or MyVideos followed by some digits, and select Drop underneath the list. Confirm that you want to drop the databases.
    2. When using the command line tools: enter show databases; including the semicolon. Type drop database <name>; for every name in the resulting list starting with MyMusic or MyVideos and followed by some digits, for example: drop database MyVideos75; drop database MyMusic32; Note that actual names may vary per XBMC version, and do not forget the trailing semicolon.
  6. Upgrade the downgraded XBMC device back up to v12 and open XBMC again.
  7. Import the library by simply scanning it in as a new file source. XBMC will pick up the exported data as it scans the files in.
  8. XBMC will now rebuild a fresh MySQL library DB, but using all your existing information.
  9. You can now open/launch XBMC on the other devices.

4.2 Different XBMC versions

Using MySQL to sync the library only works if all XBMC devices are using the same version of XBMC.

5 Notes

  1. 1.0 1.1 1.2 The extra safe part is because we copy the thumbnails artwork manually to each XBMC device, instead of having XBMC just download the art from the internet. If you have library items that scanned their art in a long time ago then the internet copy might not exist anymore, hence this extra safe method.