GA

2018/10/02

MySQL Router 8.0.12に同梱されているhttp_serverプラグインの謎について

TL;DR


もちろん MySQL :: MySQL Router 8.0 を全文検索しても “http” で引っかかってこない。
コミットを見るとMySQL Router 8.0.12から入ったっぽいけれど、もちろん MySQL :: MySQL Router Release Notes :: Changes in MySQL Router 8.0.12 (2018-07-27, General Availability) にも何も書いてない。
流石に “Linux Generic” やrpmパッケージには入ってなかったけど、特にcmakeにオプションを渡すでもなく、ソースビルドすると何の断りもなく勝手に http_server.so というプラグインが出来上がる。
$ cd mysql-router-8.0.12
$ cmake .
$ make
$ ll stage/lib/mysqlrouter/http*
-rwxrwxr-x 1 yoku0825 yoku0825 494096 Oct  2 14:59 stage/lib/mysqlrouter/http_server.so
名前から察するに、全国 1.000000人のファンを擁するMySQL HTTP Plugin的な感じなのかしらん。MySQL RouterがHTTPをしゃべって、裏ではMySQLプロトコルでmysqldとやり取りしてくれる…的な。
(MySQL HTTP Pluginについてはこのへん… 日々の覚書: MySQLジャンキーにngx_mrubyを与えた結果
http_server_plugin.cc を見る限り、 [http_serevr] セクションを見つけると立ち上がるらしい。
デフォルトは 0.0.0.0:5555バインド されるようで、 static_folder というパラメーターもあるようだ。
…他は?;
取り敢えず試してみる。
plugin_folderをビルドしたパスに合わせるのと、最後に “[http_server]” とセクションだけ定義してやる。
$ cp packaging/rpm-oel/mysqlrouter.conf ./mysqlrouter.conf
$ vim ./mysqlrouter.conf
..
plugin_folder = /home/yoku0825/mysql-router-8.0.12/stage/lib/mysqlrouter
..
[http_server]

$ sudo ./stage/bin/mysqlrouter --config=./mysqlrouter.conf

$ sudo less /var/log/mysqlrouter/mysqlrouter.log

2018-10-02 16:15:52 main INFO [7f250a835780] Loading all plugins.
2018-10-02 16:15:52 main INFO [7f250a835780]   plugin 'http_server:' loading
2018-10-02 16:15:52 main INFO [7f250a835780]   plugin 'keepalive:' loading
2018-10-02 16:15:52 main INFO [7f250a835780] Initializing all plugins.
2018-10-02 16:15:52 main INFO [7f250a835780]   plugin 'http_server' initializing
2018-10-02 16:15:52 http_server INFO [7f250a835780] listening on 0.0.0.0:5555
2018-10-02 16:15:52 main INFO [7f250a835780]   plugin 'keepalive' initializing
2018-10-02 16:15:52 main INFO [7f250a835780] Starting all plugins.
2018-10-02 16:15:52 main INFO [7f2507a67700]   plugin 'http_server:' starting
2018-10-02 16:15:52 main INFO [7f2507266700]   plugin 'keepalive:' starting
2018-10-02 16:15:52 keepalive INFO [7f2507266700] keepalive started with interval 60
2018-10-02 16:15:52 keepalive INFO [7f2507266700] keepalive
2018-10-02 16:15:52 main INFO [7f250a835780] Running.

$ curl localhost:5555
<HTML><HEAD>
<TITLE>404 Not Found</TITLE>
</HEAD><BODY>
<H1>Not Found</H1>
</BODY></HTML>
…しゃべった………。
static_folderを設定してもっかい起動してみる。
$ vim ./mysqlrouter.conf
..
[http_server]
static_folder= /home/yoku0825/mysql-router-8.0.12

$ sudo ./stage/bin/mysqlrouter --config=./mysqlrouter.conf

$ curl localhost:5555/src/http/src/http_server_plugin.cc
..
ファー、見えた…。
これ、いつか static_folder 以外にもURIとSQLのマッピングとかできるようになってmyhttpプラグイン再び、になるのかしらん。
期待age(?)

0 件のコメント :

コメントを投稿