主页
文章
知识库
云盘
工具
登录
登录
注册
忘记密码
反馈
文章
MySQL UDF sys_exec()
MySQL UDF sys_exec()
lyjin
2023-07-06
> 问题: mysql中没有sys_exec()用户自定义函数 > 系统 Ubuntu20.04 > MySQL5.7.35 ## 1. 下载代码 从这个仓库下载代码 https://github.com/mysqludf/lib_mysqludf_sys 进入到下载好的文件中 ## 2. 修改Makefile 查看Makefile 原版: ```shell LIBDIR=/usr/lib install: gcc -Wall -I/usr/include/mysql -I. -shared lib_mysqludf_sys.c -o $(LIBDIR)/lib_mysqludf_sys.so ``` 修改后 ```shell install: gcc -Wall -m64 -I/usr/include/mysql -I. -shared lib_mysqludf_sys.c -o lib_mysqludf_sys.so ``` 注意: - 原版的将动态库生成到/usr/lib中,修改后直接生成在当前路径中 - 如果时32为系统,将**-m64**替换为**-m32** ## 3.编译 ```shell make ``` 编译完成后生成`lib_mysqludf_sys.so` ## 4.安装动态库 `mysql -u root -p`登录到mysql命令行中,执行 ``` SHOW VARIABLES LIKE 'plugin_dir'; ``` 查看mysql插件动态库的安装路径,输出`/usr/lib/mysql/plugin` 将`lib_mysqludf_sys.so`移动到`/usr/lib/mysql/plugin`路径中 ```shell mv lib_mysqludf_sys.so /usr/lib/mysql/plugin # 设置权限 chmod 644 /usr/lib/mysql/plugin/lib_mysqludf_sys.so ``` ## 5.安装UDF ```shell ./install.sh ``` 注意: - 使用root用户安装,安装过程中需要输入root用户密码 ## 6.注意 确保你的MySQL用户具有EXECUTE权限。你可以使用以下命令为用户授权: ``` GRANT EXECUTE ON *.* TO '执行存储过程的用户名'@'%'; ``` 还需要在MySQL配置文件中启用secure_file_priv选项。这个选项指定了MySQL服务器允许执行的外部命令的路径,修改MySQL配置文件(例如my.cnf或my.ini),并添加以下配置: ``` secure_file_priv = /path/to/your/directory ``` 重启mysql ``` service mysql restart ``` 经过以上几步操作,在MySQL中就可以使用用户自定义函数sys_exec()
分享
×
用手机扫码分享
没有评论
请登陆后评论
新建评论
移除
关闭
提交