Common problems for database updating.
File/Dir not in DB Edit
OK, basically you've got this brand new song, or directory in under your music root. You have given the command to update the database. When you look in a client your music isn't there. This is caused by user error (unless it's not see below).
Possible problems are:
- MPD doesn't have permissions to the music. This is more than likely the problem. Yes, you think you've got permissions, but somehow you don't. 99% of the time when this problem has been brought up user x (yourself) thinks it's fine, but it's really not. Double/triple check this. Keep in mind that MPD isn't necessarily running under your user account, depending on your setup.
- You don't have permission to the database file. This is more rare, but does still happen.
- You don't have the specific codec for the file you're wanting to play. For example, if you want to play an OggVorbis file, you need to have ogg support built into MPD. The best, and easiest way to find out (and you may not even have to be root) is mpd --version. There will be a listing there of all the supported formats that were compiled into your MPD.
- The client that you're using is broken, it didn't update when it was supposed to. This is more than likely not the case.
- Check the filesystem_charset setting in mpd.conf. It should match your filesystem charset, ofcourse. Filenames, that contain invalid characters for configured charset, will not be found.
- Check that the filesystem is not completely full. If it is full, database might/will be detected as corrupted. In that case you will also observe that the MPD state gets not restored at reboots because the state file can not be written to anymore. If the state file can not be written any more your last played song and last used playlist start to disappear after a reboot from the day on when the disc has no space left.
How to troubleshoot (if all else fails):
- Open a shell window
- Start mpd with the arguments --verbose --no-daemon --stdout and have it go into a file, as such (in bash): mpd --verbose --no-daemon --stdout > mpd_trouble.out
- Update the directory above the one MPD's not finding. For example if MPD can't find sound/mp3/arcane do: mpc update sound/mp3
- Examine that file in an editor
Now, you may notice that I note that MPD is not the problem. That's because it's not. MPD had this problem a few times before, but it seems to have been fixed by now, making it perfect. Now, if you have been through the checklist above and your problem is still not resolved come see us