mt-daapd のデータベースが壊れて起動しなくなった
iTunes を起動しても mt-daapd が見えなくなってた。最近、mt-daapd だけ落ちる事があるので、特に気にもせずにサーバにログインして手で起動してみる。
paraches@debian:~$ sudo /etc/init.d/mt-daapd start Starting mt-daapd: mt-daapd.
で、iTunes に mt-daapd が出てくるのを待つけど出てこない。あれれ?
とりあえずサーバで mt-daapd が起動してるか見てみる。
paraches@debian:~$ ps ax | grep mt 2919 pts/0 S+ 0:00 grep mt
起動してない…。
何が起きたんだろう? というわけで、mt-daapd のログを確認してみる。
2008-08-16 13:49:58 (b74d0a60): Starting with debuglevel 2 2008-08-16 13:49:58 (b74d0a60): Starting rendezvous daemon 2008-08-16 13:49:58 (b74d0a60): Starting signal handler 2008-08-16 13:49:58 (b748dbb0): Signal handler started 2008-08-16 13:49:59 (b74d0a60): Initializing database 2008-08-16 13:49:59 (b74d0a60): Query: vacuum 2008-08-16 13:49:59 (b74d0a60): Error: database disk image is malformed 2008-08-16 13:49:59: Aborting 2008-08-16 13:49:59 (b6c8cbb0): Rendezvous socket closed (daap server crashed?) Aborting. 2008-08-16 13:49:59: Aborting
良く解らないけど、たぶん database disk image がおかしくなってるって事が原因ね。修復するとかのオプションあるのかな? なんて考えもせずに「んじゃ、また最初から新しく作ってもらおう!」ということに。
データベースのデータは /var/cache/mt-daapd に作られてるから、この中身を消しちゃえば新しく作ってくれる。
paraches@debian:/var/cache/mt-daapd$ sudo rm songs3.db* paraches@debian:/var/cache/mt-daapd$ ls paraches@debian:/var/cache/mt-daapd$
で、消したら mt-daapd を再起動して mt-daapd が起動するかどうか確認。
paraches@debian:/var/cache/mt-daapd$ sudo /etc/init.d/mt-daapd start Starting mt-daapd: mt-daapd. paraches@debian:~$ ps ax | grep mt 16134 pts/0 Sl 0:00 /usr/sbin/mt-daapd 16136 pts/0 Rl 0:03 /usr/sbin/mt-daapd 16292 pts/1 R+ 0:00 grep mt paraches@debian:~$
ちゃんと起動してる。
で、今度はログを見てみよう。
paraches@debian:/var/cache/mt-daapd$ cd /var/log paraches@debian:/var/log$ cat mt-daapd.log <省略> 2008-08-16 15:58:56 (b7596a60): Starting with debuglevel 2 2008-08-16 15:58:56 (b7596a60): Starting rendezvous daemon 2008-08-16 15:58:56 (b7596a60): Starting signal handler 2008-08-16 15:58:56 (b7553bb0): Signal handler started 2008-08-16 15:58:57 (b7596a60): Error: enum_begin failed (error 1): Misc SQL Error: no such table: config 2008-08-16 15:58:57 (b7596a60): Can't get db version. New database? 2008-08-16 15:58:57 (b7596a60): Initializing database 2008-08-16 15:58:57 (b7596a60): Error: enum_begin failed (error 1): ? 2008-08-16 15:58:57 (b7596a60): Error: enum_begin failed (error 1): ? 2008-08-16 15:58:57 (b7596a60): Full reload... 2008-08-16 15:58:58 (b7596a60): Starting mp3 scan 2008-08-16 16:03:50 (b7596a60): Starting playlist scan 2008-08-16 16:03:50 (b7596a60): Scanned 13002 songs in 292 seconds 2008-08-16 16:03:50 (b7596a60): Starting web server from /usr/share/mt-daapd/admin-root on port 3689 2008-08-16 16:03:50 (b7596a60): Registering rendezvous names 2008-08-16 16:03:50 (b7596a60): Serving 13002 songs. Startup complete in 292 seconds paraches@debian:/var/cache$
というわけで、ちゃんと作り直してくれてるみたい。
iTunes からも mt-daapd が見えるようになったし。めでたし、めでたし。