Mediatombはデフォルトではデータベースとしてsqlite3を使っていますが、1000を超えるファイルがある場合、sqlite3だと非常に処理に時間がかかってしまいます。
代わりにMySQLをデータベースとして使うようにすると、処理が格段に早くなります。
ただし、finkのデフォルト設定ではMySQLが無効にされた状態でMediaTombがインストールされるので、FInkのMediaTombコンパイル方法の設定を変更した上で再コンパイルが必要となります。
やり方は次の通り。
MySQLのインストール
まずFinkか、または公式ページからパッケージを落とします。
公式ページからパッケージ版をダウンロードしてインストールする場合
こっちはコンパイルが必要ありません。
公式ページからTEST DRIVE > Download > MySQL Community Server > 5.0 の Mac OS X向けの自分のマシンにあったバージョンをダウンロード、インストールします。TARでもOKです。
Finkでこれを使う場合は、
ln -s インストール先フォルダ /usr/local/mysql ln -s /usr/local/mysql/bin/mysql_config /sw/bin/
DBの作成
MySQLを起動し、MediaTomb用のユーザとDBを適当な名前で作成します。ここではどちらもmediatombとしました。くわしくはMySQLのSQLドキュメントを読んでください。
# mysql -p mysql> use mysql mysql> INSERT INTO user -> VALUES('localhost','mediatomb',PASSWORD('xxxxx'), -> 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); mysql> FLUSH PRIVILEGES; mysql> CREATE DATABASE mediatomb; mysql> GRANT ALL ON mediatomb.* TO 'mediatomb'@'localhost';
Finkの設定ファイルの編集
/sw/fink/10.5/unstable/main/finkinfo/net/mediatomb.info
を編集し、MySQLとリンクするようにします。具体的には ConfigureParams を以下のように、--disable-mysql から --enable-mysql に変更します。
ConfigureParams: --disable-dependency-tracking --enable-mysql --with-js-h=%p/include/js --with-js-libs=%p/lib
あとは
fink rebuild mediatomb
して、じっと待ちましょう。
リンクに問題あり?
インストール完了後、確認のためにmediatomb -vを実行しようとしたところ、
dyld: Library not loaded: /usr/local/mysql/lib/mysql/libmysqlclient_r.15.dylib
という変なエラーが出てしまいました。後ろの /mysql/ は要らないはずです。なんでこんな変なところが間違ってるんだろう??
よく分かりませんが、
sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql
として /mysql/ があってもなくても良いようにしてしまったところ、とりあえず回避できました。
MediaTombの設定
~/.mediatombの
<storage driver="mysql"> <database-file>mediatomb.db</database-file> ←おまじない <host>localhost</host> ←MySQLが動作しているホスト名 <database>mediatomb</database> ←DB名 <username>mediatomb</username> ←ユーザ名 <port>3306</port> ←MySQLが動いているポート <password>xxxxx</password> ←パスワード </storage>
MediaTombを起動
幸運を祈りながらやりましょう。;-) まずmysqlを起動し、
mediatomb --add /Users/hoge/xxx
で、無事ファイルが登録されたら成功。以降は単に
mediatomb -d
でデーモンとして起動してくれるはずです。