とみたさんの UDF を作ろう記事を、そのまま試してみました。
ほとんど、書かれているとおりにソースコードをコピーして gcc かけて プラグイン動作させれば良いです。が、少しだけ悩んだ点があるので、そこだけ補足的メモ。
include フォルダがなかった!
私の環境では、mysql の include フォルダが見当たらず。いろいろ操作した結果入ったので、どれが効いていたのか確証ないのだけど、たぶん、これ。
$ sudo apt-get install libmysqld-dev
includeフォルダの位置も、とみたさんの記事とは異なっていたので、以下のように捜索。
$ find / -type d -name mysql /usr/include/mysql /usr/include/mysql/mysql :
プラグインフォルダの確認方法
mysql> show variables like '%plugin%'; +-------------------------------+------------------------+ | Variable_name | Value | +-------------------------------+------------------------+ | default_authentication_plugin | caching_sha2_password | | plugin_dir | /usr/lib/mysql/plugin/ | +-------------------------------+------------------------+
環境が揃っていれば
やることは、これだけ。
$ gcc -shared -I /usr/include/mysql/ fib.c -o fib.so $ sudo cp fib.so /usr/lib/mysql/plugin/
mysql> create function fib returns integer soname 'fib.so'; mysql> select fib(10); mysql> drop function fib;