
-----------------------------------------------------------------
HandlerSocketプラグインのビルド方法(RPMを使わない方法)

以下のようにしてconfigureを実行します。

  $ ./autogen.sh
  $ ./configure --with-mysql-source=/work/mysql-5.1.50 --with-mysql-bindir=/work/mysql-5.1.50-linux-x86_64-glibc23/bin  --with-mysql-plugindir=/work/mysql-5.1.50-linux-x86_64-glibc23/lib/plugin

ここで--with-mysql-sourceにはMySQLのソースコードのトップディレク
トリを指定します(そこにVERSIONファイルかconfigure.inファイルがなく
てはなりません)。--with-mysql-bindirにはインストール済みのMySQL
のmysql_configコマンドが有るディレクトリを指定します。
その後以下のようにビルド・インストールします。

  $ make
  $ sudo make install

-----------------------------------------------------------------
クライアントライブラリのビルド方法(RPMを使わない方法)

クライアントライブラリをビルドする際には、MySQLのソースコードは
必要ありません。またMySQLがインストールされている必要もありません。

  $ ./autogen.sh
  $ ./configure --disable-handlersocket-server
  $ make
  $ sudo make install
  $ cd perl-Net-HandlerSocket
  $ perl Makefile.PL
  $ make
  $ sudo make install

-----------------------------------------------------------------
ビルド方法(RPM)

以下のように実行すれば、rpmパッケージがビルド＆インストールされま
す。

(MySQLサーバ側、HandlerSocketプラグインをインストールする)
  $ ./autogen.sh
  $ ./configure --with-mysql-source=/work/mysql-5.1.50 --with-mysql-bindir=/work/mysql-5.1.50-linux-x86_64-glibc23/bin  --with-mysql-plugindir=/work/mysql-5.1.50-linux-x86_64-glibc23/lib/plugin
  $ make rpm_cli
  $ sudo rpm -U dist/RPMS/*/libhsclient*.rpm
  $ make rpm_c
  $ sudo rpm -U dist/RPMS/*/handlersocket*.rpm

(クライアント側、クライアントライブラリをインストールする)
  $ ./autogen.sh
  $ ./configure --disable-handlersocket-server
  $ make rpm_cli
  $ sudo rpm -U dist/RPMS/*/libhsclient*.rpm
  $ make rpm_perl
  $ sudo rpm -U dist/RPMS/*/perl-Net-HandlerSocket*.rpm

-----------------------------------------------------------------
起動

mysqlを起動した状態で、mysqlの設定ファイル(my.cnf等)に以下の内容を
追加します。

  [mysqld]
  handlersocket_port = 9998
      # handlersocketが接続を受け付けるポート(参照系リクエスト用)
  handlersocket_port_wr = 9999
      # handlersocketが接続を受け付けるポート(更新系リクエスト用)
  handlersocket_address =
      # handlersocketがバインドするアドレス(空のままでOK)
  handlersocket_verbose = 0
      # デバッグ用
  handlersocket_timeout = 300
      # 通信タイムアウト(秒)
  handlersocket_threads = 16
      # handlersocketのワーカースレッド数
  thread_concurrency = 128
      # handlersocketが幾つかのスレッドを占有するため、大きめの
      # 値を指定してください
  open_files_limit = 65535
      # ソケットを大量に開けるようにするため、大きめの値を指定し
      # てください

以下のクエリを実行します。

  mysql> install plugin handlersocket soname 'handlersocket.so';
  Query OK, 0 rows affected (0.06 sec)

以上でhandlersocketへクライアントからアクセスできるようになります。

