--.--.-- --:-- | EDIT
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Category: スポンサー広告
Permanent Link | Comment(-) | Trackback(-) | PageTop↑
2012.02.17 23:38 | EDIT
データベースの登録が遅い
前回までの試みでUbuntu起動時からMediaTombを無事起動させることができるようになったので、今度はメディアデータの登録を本格的に行っていこうと思う。メディアデータの登録方法は先の記事にも書いているように、ブラウザを使って行っていくことになる。メディアデータの数が少ないときはそれほど気にならなかったのだが、サブフォルダを含むフォルダ登録を行うときなどメディアデータの数が増えてくるとデータベースに登録されるまでの時間が気になるようになってきた。
そこで以前MediaTomb導入に向けてネット検索している際に、データベースが変更できるような書き込みがあったことを思い出した。再びネットで調べてみると、MediaTombはデフォルトでsqlite3というデータベースを使うようになっているが、これをMySQLというデータベースに変更すると高速化が見込めるそうだ。それでは先人たちに習ってMySQLを導入してみようと思う。

MySQLのインストール
MySQLは初期状態のUbuntuには組み込まれていないため別途インストールする必要がある。
MySQLをインストールするには、以下のコマンドを入力する。
apt-get install mysql-server

途中rootのパスワードを聞かれるので、今回は適当に'mediatomb'と入力した。
20120217-01.jpg

パスワードの再確認があるため、こちらも同じように'mediatomb'と入力。
20120217-02.jpg

データベースの作成
MySQLのインストールが完了したら、さっそくMediaTombで使用するデータベースを作成する。「mysql -u root -p」と入力し、MySQL monitorを起動する。パスワードは上記で入力したもの(今回は'mediatomb')を入力する。上手くいくとmysql> のプロンプトが表示される。後は対話形式でデータベースの操作ができるようだ。
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 51
Server version: 5.1.37-1ubuntu5.5 (Ubuntu)
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql>

対話形式になったら、先ずmediatombという名前でデータベースの箱を作る。コマンドはcreate databaseの後にデータベース名を書けば良いようだ。コマンドの最後にコロンはお約束らしい。
mysql> create database mediatomb;
Query OK, 1 row affected (0.00 sec)

続いてデータベースmediatombのアクセス権限を設定する。アクセス権限はgrant命令で行う。grantの後に、all privilegesを付けると全ての実行権限が与えられるようだ。onの後ろにはデータベース名.*、toの後ろにはユーザ名@ホスト名、indentified by の後ろにはパスワードを設定する。ここではデータベース名は直前で作成したmediatombを使用、ユーザ名、パスワードはともにmediatombにしてみよう。ホスト名は自身のマシンをアクセスする場合はlocalhostで良いみたいだ。
mysql> grant all privileges on mediatomb.* to mediatomb@localhost identified by 'mediatomb';
Query OK, 0 rows affected (0.00 sec)

上記設定が終わったら、設定を反映させるために一度 'flush privileges' を実行する。
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

ここまでできたら 'quit' を入力し対話形式を終了する。
mysql> quit
Bye

続いて、上記で作成したデータベース(mediatomb)にテーブル情報を取り込む作業を行う。テーブル情報を取り込むには、以下のコマンドを使い、あらかじめMediaTomb側で用意されている'mysql.sql'というひな形をデータベースに流し込めば良いらしい。-uの後ろにはユーザ名、-pの後ろにはデータベース名を指定する。コマンドの実行にあたってパスワードを聞かれるので、ユーザmediatombのパスワード(今回はmediatomb)を入力する。
# mysql -u mediatomb -p mediatomb < /usr/share/mediatomb/mysql.sql
Enter password:

MediaTomb設定ファイルの修正
データベースの設定が完了したら、今度はMediaTomb側の設定を変更する。設定変更が必要なファイルは以前メディアデータの拡張子などを追加したconfig.xmlファイルだ。このファイルを開き、赤文字の部分を書き換えMySQLを有効にする(sqlite3をnoに、mysqlをyesに変更)。そして緑文字で示した行を追加する。これはデータベース(mediatomb)へのアクセスパスワードだ。usernameとdatabaseはデフォルトでmediatombになっており、今回これに合わせた形で上記データベースを作成しているので変更する必要は無い。
/etc/mediatomb/config.xml
  :    :    :    :    :    :    :    :    :    :    :
<storage>
<sqlite3 enabled="no">
<database-file>mediatomb.db</database-file>
</sqlite3>
<mysql enabled="yes">
<host>localhost</host>
<username>mediatomb</username>
<password>mediatomb</password>
<database>mediatomb</database>
</mysql>
</storage>
: : : : : : : : : : :
以上で設定は完了だ。

MySQLでMediaTombを使用する
ではMediaTombを再起動し、MySQLによる動作を確認してみよう。以下のようにrestartコマンドを実行し、MediaTombを再起動する。
# /etc/init.d/mediatomb restart
* Restarting upnp media server mediatomb [ OK ]

続いて効果の程を確かめるべく、試しに600ファイル程度のメディアデータが含まれるフォルダの登録時間を計測してみたところ、sqlite3では2分50秒ほどかかっていたものが、mysqlでは30秒ほどに短くなった。およそ1/5~1/6の時短効果が得られたため、切り替えたメリットは十分にあったと思う。
関連記事
コメント:
コメント:を投稿する

トラックバック:

FC2カウンター

検索フォーム

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。