MySQL的LOAD_FILE方法在使用时的问题:
在执行 UPDATE tables_name SET file_path=LOAD_FILE("/tmp/aa.txt") WHERE file_id=“1”;
时file_path的值一直为“NULL” 无法把文件导入到数据库里面
网上也搜了很多方法:
查看对应文件夹权限,并进行修改的的,这个方法是最多的
show global variable like ‘%secure%’;
对应的博客链接:https://blog.csdn.net/huxyc/article/details/88704928
后来试了无数次,偶然在数据库服务端执行了下更新命令,竟然成功了!!!
突然明白了原理,我之前都是在MySQL客户端上执行的命令,并且文件及路径都是在客户端上的,如果我能在客户端执行成功这个命令,并且把文件导入数据库中,那就成文件注入了,如果我劫持了MySQL客户端,就能给MySQL数据库注入文件,这样是很危险的。
所以使用LOAD_FILE方法时一定要在MySQL服务端上执行,并且文件以及路径也都要在MySQL服务端上!!!当然,权限是要有的。