MySQL/Upgrading: Difference between revisions
No edit summary |
|||
Line 2: | Line 2: | ||
{{mininav| [[MySQL]] }} | {{mininav| [[MySQL]] }} | ||
When updating to a new version, {{kodi}} 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. | When updating to a new version, {{kodi}} 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. | ||
Line 16: | Line 13: | ||
It's also a good idea to make periodic backups of your library even if you are not updating | It's also a good idea to make periodic backups of your library even if you are not updating Kodi. 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. | ||
Line 22: | Line 19: | ||
==Making sure {{kodi}} can update the library== | ==Making sure {{kodi}} can update the library== | ||
{{Note|If you originally set up MySQL using this {{kodi}} Wiki guide then you should not have to worry about this section. It never hurts to double check the settings, though.}} | |||
{{Note|if you used 'xbmc' as a username in the past, you can keep using it even though the program has changed names to Kodi. It makes no difference as long as that is the name you set up MySQL with.}} | |||
For {{kodi}} 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: | For {{kodi}} 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: | ||
Line 30: | Line 28: | ||
If you are worried about security then you can limit | If you are worried about security then you can limit Kodi'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 Kodi. If the only thing you use MySQL for is {{kodi}} then you don't really need to worry about security. | ||
==Common problems== | ==Common problems== | ||
Line 74: | Line 36: | ||
# Downgrade {{kodi}} on one of your {{kodi}} devices to the previous version of {{kodi}} (you only need to do this to one device). [[Export]] the library to multiple files using {{highlight|bordered=yes|[[Settings/Videos#Library|Settings -> Videos -> Library]] -> Export library}} and select "multiple files". | # Downgrade {{kodi}} on one of your {{kodi}} devices to the previous version of {{kodi}} (you only need to do this to one device). [[Export]] the library to multiple files using {{highlight|bordered=yes|[[Settings/Videos#Library|Settings -> Videos -> Library]] -> Export library}} and select "multiple files". | ||
#:'''''Note:''' If you backed up your {{kodi}} database, you can use that backup in place of this first step.'' | #:'''''Note:''' If you backed up your {{kodi}} database, you can use that backup in place of this first step.'' | ||
# Quit | # Quit Kodi | ||
# Place {{highlight|<nowiki><importwatchedstate>true</importwatchedstate></nowiki>}} in your [[advancedsettings.xml]] file on the downgraded {{kodi}} device. | # Place {{highlight|<nowiki><importwatchedstate>true</importwatchedstate></nowiki>}} in your [[advancedsettings.xml]] file on the downgraded {{kodi}} device. | ||
# If you used the <name> tag in your [[advancedsettings.xml]] file, remove these lines. {{kodi}} 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 {{kodi}} v11 and later. | # If you used the <name> tag in your [[advancedsettings.xml]] file, remove these lines. {{kodi}} 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 {{kodi}} v11 and later. | ||
Line 88: | Line 50: | ||
;Method 2 | ;Method 2 | ||
# Quit | # Quit Kodi | ||
# Use the MySQL configuration utility to drop/delete the existing MySQL copies of the {{kodi}} database(s). | # Use the MySQL configuration utility to drop/delete the existing MySQL copies of the {{kodi}} database(s). | ||
## Consult the table on '''[[Databases/Versions]]''' and note the version number for the downgraded version. You will want to get rid of all of the versions '''after''' that version. | ## Consult the table on '''[[Databases/Versions]]''' and note the version number for the downgraded version. You will want to get rid of all of the versions '''after''' that version. | ||
Line 103: | Line 65: | ||
<references /> | <references /> | ||
{{ | {{Helix updated}} |
Revision as of 06:56, 29 December 2014
Share libraries w/MySQL, guide: |
![]() |
![]() |
![]() |
When updating to a new version, Kodi 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.
Note: Updating your library may take a few minutes, so be sure to give Kodi time to do its thing. Stopping midway will mess up the updated DB.
Backing up the database
BACKUP YOUR DATABASE JUST IN CASE.
Even though Kodi 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 Kodi. 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. For more information see HOW-TO:Backup the library.
Making sure Kodi can update the library
Note: If you originally set up MySQL using this Kodi Wiki guide then you should not have to worry about this section. It never hurts to double check the settings, though.
Note: if you used 'xbmc' as a username in the past, you can keep using it even though the program has changed names to Kodi. It makes no difference as long as that is the name you set up MySQL with.
For Kodi 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 Kodi'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 Kodi. If the only thing you use MySQL for is Kodi then you don't really need to worry about security.
Common problems
Upgrade fails
- Method 1
- Downgrade Kodi on one of your Kodi devices to the previous version of Kodi (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 Kodi database, you can use that backup in place of this first step.
- Quit Kodi
- Place <importwatchedstate>true</importwatchedstate> in your advancedsettings.xml file on the downgraded Kodi device.
- If you used the <name> tag in your advancedsettings.xml file, remove these lines. Kodi 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 Kodi v11 and later.
- Use the MySQL configuration utility to drop/delete the existing MySQL copies of the Kodi database(s).
- 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.
- When using the command line tools: enter
show databases;
including the semicolon. Typedrop database <name>;
for every name in the resulting list starting with MyMusic or MyVideos and followed by some digits, for example:drop database MyVideos78; drop database MyMusic46;
Note that actual names may vary per Kodi version, and do not forget the trailing semicolon.
- You can now re-update the device you downgraded in step 1.
- Import the library by simply scanning it in as a new file source. Kodi will pick up the exported data as it scans the files in.
- Kodi will now rebuild a fresh MySQL library DB, but using all your existing information.
- You can now open/launch Kodi on the other devices.
- Method 2
- Quit Kodi
- Use the MySQL configuration utility to drop/delete the existing MySQL copies of the Kodi database(s).
- Consult the table on Databases/Versions and note the version number for the downgraded version. You will want to get rid of all of the versions after that version.
- When using phpMyAdmin: select Databases option from the top of the screen, put a checkbox in front of all databases (after the stable version from step 2) called MyMusic or MyVideos followed by some digits, and select Drop underneath the list. Confirm that you want to drop the databases.
- When using the command line tools: enter
show databases;
including the semicolon. Typedrop database <name>;
for every name in the resulting list, after the stable version from step 2, starting with MyMusic or MyVideos and followed by some digits, for example:drop database MyVideos78; drop database MyMusic46;
Note that actual names may vary per Kodi version, and do not forget the trailing semicolon.
- Start one Kodi instance that is using the version you want to use and give it lots of time to update the database.
- Kodi will make a new updated DB using the last working DB from the previous Kodi installation.
- You can now open/launch Kodi on the other devices.
Different Kodi versions
Using MySQL to sync the library only works if all Kodi devices are using the same version of Kodi.
Notes