在使用編譯出的lib_mysqludf_sys.so遇到了如下等等問題
1.
failed:function ramsdb.sys_exec does not exist!
2.
error 1126 (hy000): can't
open
shared
library
'lib_mysqludf_sys.so' (errno: 11/usr/lib64/mysql/plugin/lib_mysqludf_sys.so: wrong elf class: elfclass32)
完整安裝udf呼叫系統程式具體步驟如下:
zip解壓,然後複製到/opt目錄下
cd /opt ,編譯so檔案:
4. 登入mysql, 執行sql>
5. 取得plugin_dir,即補丁目錄:/usr/lib64/mysql/plugin/,將上一步編譯得到的lib_mysqludf_sys.so拷貝至/usr/lib64/mysql/plugin/
6. 在/usr/lib64/mysql/plugin/目錄下設定許可權:
chmod
777 lib_mysqludf_sys.so
7.拷貝lib_mysqludf_sys.sql裡邊的sql語句,
drop function if
exists lib_mysqludf_sys_info;
drop function if
exists sys_get;
drop function if
exists sys_set;
drop function if
exists sys_exec;
drop function if
exists sys_eval;
create function lib_mysqludf_sys_info returns string soname 'lib_mysqludf_sys.so';
create function sys_get returns string soname 'lib_mysqludf_sys.so';
create function sys_set returns int soname 'lib_mysqludf_sys.so';
create function sys_exec returns int soname 'lib_mysqludf_sys.so';
create function sys_eval returns string soname 'lib_mysqludf_sys.so';
並在mysql執行所有sql語句
8.來個觸發器測下:
delimiter $$
use `testsb`$$
drop
trigger /*!50032
ifexists */ `t_working`$$
create
/*!50017 definer = 'root'@'%' */
trigger
`t_working`
before
update
on`t_tel`
foreach
rowbegin
declare done int
default
0; if new.active!=old.active then
set done = sys_exec("sh /home/working/test.sh");
update t_working set working=new.active where id=new.wkid;
endif;
end;
$$delimiter ;
大功告成! linux系統安裝mysql
inux安裝mysql服務分兩種安裝方法 原始碼安裝,優點是安裝包比較小,只有十多m,缺點是安裝依賴的庫多,安裝編譯時間長,安裝步驟複雜容易出錯 使用官方編譯好的二進位制檔案安裝,優點是安裝速度快,安裝步驟簡單,缺點是安裝包很大,300m左右。以下介紹linux使用官方編譯好的二進位製包安裝mysq...
linux系統安裝mysql
linux安裝mysql服務分兩種安裝方法 原始碼安裝,優點是安裝包比較小,只有十多m,缺點是安裝依賴的庫多,安裝編譯時間長,安裝步驟複雜容易出錯 使用官方編譯好的二進位制檔案安裝,優點是安裝速度快,安裝步驟簡單,缺點是安裝包很大,300m左右。以下介紹linux使用官方編譯好的二進位製包安裝mys...
Linux系統安裝mysql
感謝博主分享 wget 2.解壓安裝包 tar zxvf 3.進入資料夾 cd mysql 5.6.26 linux glibc2.5 x86 64 4.建立使用者組和使用者 groupadd mysql useradd r g mysql mysql 5.修改許可權 chown r mysql m...