MySQL をバックエンドのデータベースとして使用する

Note

POPFile 0.22.0 はパッチを当てない限り、MySQLと互換性がありません。0.22.1がリリースされれば、完全に互換性が保たれるようになります。(訳注: 0.22.1 はすでにリリースされています)

End Note

POPFile 0.21.0 から、バックエンドのデータベースは、SQL (互換の)データベースを使用するようになっています。POPFile は、SQLite を使うように設定された状態で提供されていますが、Perl の DBI がサポートするどんな SQL データベースを使用するように設定することができます。下記には、MySQL 特有の設定方法がありますが、ほかの SQL データベースにも容易に対応可能でしょう。

どのように設定を行うかは、あなたがお使いの POPFile のバージョンに依存しますから、下記から適切な設定方法を選ぶようにしましょう。また、これらの設定方法は、すでにMySQL サーバーが起動しており、MySQLMySQL クライアントに慣れ親しんでいることを前提としていることに注意してください。

MySQL と POPFile に関する重要な項目

現在のバージョンの MySQL は、トリガーをサポートしていません。POPFile は、いくつかの領域でデータベース内の整合性を自動的に保つために、 データベーストリガーを使用しています。 MySQL をバックエンドのデータベースとして使用しているユーザーは、トリガーの代わりに下記の対応を行う必要があります:

  1. マグネットが削除された時の親のない子レコード
  2. バケツが削除されたときの親のないバケツの内容

バケツを削除する前に、つねにバケツを空にする ( “全ての単語を削除”をクリック )ことで、2番目の問題を避けることができます。

Windows ユーザー

インストーラーから POPFile をインストールした Windows 版のユーザーは、Perl の最小のサブセットを使っています。このサブセットには、MySQL を使うために必要なコンポーネントが不足しています。

バックエンドのデータベースを問題なく変更するには、これらのユーザーはActiveState 版の Perlをフルインストールしなければなりません、最小のサブセットの Perl を無効にするために、POPFile がインストールされたフォルダ内にある、下記に記述されたexe ファイルを削除したり、名前を変更したりしてから、適切にクロスプラットホーム版のガイドに従う必要があります。

[注意: Windows 版の 0.21.0 はまだ開発中ですので、下記の情報は書き換わる可能性があります(訳注:すでにWindows 版の0.22.1 がリリースされています) ]

POPFile がインストールされたフォルダ内にあるいくつかの exe ファイルは、最小版の Perl の一部分ではありませんから、それらを削除することは好ましくありません。(たとえば、アンインストールのための exe は、インストールの間に変更されたメールの設定をリストアするためにあります。)

最小版の Perl を無効にするには、POPFile がインストールされたフォルダ内にある perl.exe、wperl.exe、perl58.dll ファイルの名前を変更(または削除)します。POPFile がインストールされたフォルダ内の lib フォルダの名前を変更(または削除)するのも良い考えです。というのは、最小版の Perl インストレーションの残りがここに入っているからです。注意 この lib フォルダは、通常のActiveState Perl にはない、いくつかのコンポーネントを含んでいます。

[Windows 版は、最小版の Perl を使う、いくつかの exe ファイル(popfile.exe, popfileb.exe, popfilef.exe, popfileib.exe and popfileif.exe) とともに配布されていますので、問題を避けるために、それらは名前を変更する(あるいは削除する)必要があります。]

現在の POPFile ユーザーがバックエンドをMySQL に変更する

重要な事項

現在の POPFile ユーザーがバックエンドをMySQL に変更するには、下記のステップにしたがってください。

  1. MySQL クライアントを使用して、popfile 用のデータベースとユーザーを作成します。
    mysql
    create database popfile;
    grant all on popfile.* to pfuser identified by 'pfpassword';
    flush privileges;
    quit
    

    注意: pfuser と pfpassword には、お好みのユーザー名とパスワードを設定することができます。

  2. 下記の Perl モジュールがインストール済みであるかを確認しましょう。もしまだであれば、CPAN ( または、PPM を利用して ActiveState ) から入手してインストールします。
    1. DBD::mysql
  3. 起動している全ての POPFile を停止します。
  4. popfile.cfg ファイルを編集し、下記の行を変更します。
    bayes_dbconnect dbi:mysql:database=popfile;host=localhost
    bayes_dbuser pfuser
    bayes_dbauth pfpassword
    

    注意: pfuser と pfpassword には、お好みのユーザー名とパスワードを設定することができます。(訳注: 環境によっては、bayes_dbconnect を、dbi:mysql:popfile;host=localhost というように、database= を除く必要があるようです。動かない場合はお試しください)

  5. SQLite コマンドユーティリティーを使用して、現在の POPFile のデータをテキストファイルに出力します。
    sqlite popfile
    .out dump.sql
    .dump
    .q
  6. MySQL コマンドユーティリティーを使用して、テキストに出力されたデータをMySQLにロードします。
    mysql
    use popfile;
    source dump.sql
    update popfile set version = 0;
    quit
  7. POPFile を起動すると、データベースのバージョンが0であることを検知し、再びデータを出力し、MySQL 形式のスキーマを使用してデータベースを再作成します。これはしばらく時間がかかりますので、お待ちください。
  8. これで MySQL をバックエンドのデータベースとして起動しています。

POPFile の新規ユーザー

初めて POPFile をインストールし、MySQL をバックエンドのデータベースとして使いたいユーザーは、下記のステップにしたがってください;

  1. MySQL クライアントを使用して、popfile 用のデータベースとユーザーを作成します。
    mysql
    create database popfile;
    grant all on popfile.* to pfuser identified by 'pfpassword';
    flush privileges;
    quit
    

    注意: pfuser と pfpassword には、お好みのユーザー名とパスワードを設定することができます。

  2. 下記の Perl モジュールがインストール済みであるかを確認しましょう。もしまだであれば、CPAN ( または、PPM を利用して ActiveState ) から入手してインストールします。
    1. DBD::mysql
  3. $POPFILE_USER で設定された位置に、popfile.cfg ファイルを作成します。 下記の行が含まれている必要があります
    bayes_dbconnect dbi:mysql:database=popfile;host=localhost
    bayes_dbuser pfuser
    bayes_dbauth pfpassword
    

    注意: pfuser と pfpassword には、お好みのユーザー名とパスワードを設定することができます。(訳注: 環境によっては、bayes_dbconnect を、dbi:mysql:popfile;host=localhost というように、database= を除く必要があるようです。動かない場合はお試しください)

  4. POPFile を起動します。
  5. これで MySQL をバックエンドのデータベースとして起動しています。UI 画面に移動し、POPFile をきちんと動かすために少なくとも2つのバケツを作成します。

原文

 
jp/mysqlbackend.txt · Last modified: 2008/02/08 19:49 (external edit)

Should you find anything in the documentation that is incomplete, unclear, outdated or just plain wrong, please let us know and leave a note in the Documentation Forum.

Recent changes RSS feed Donate Driven by DokuWiki
The content of this wiki is protected by the GNU Fee Documentation License