ubuntu中mysql 执行select load_file(‘xxx‘);查询结果为空

在tmp目录下创建了1.txt,内容为hello world,但是在启动mysql后,使用了load_file('xxx');查询结果为空

但是我非常确定内容并不是空,所以参考了很多csdn上的文章,查询了secure_file_priv的具体值,

查询命令为

show global variables like '%secure%';

查询结果为:

于是我将要load的文件放在了上图的/var/lib/mysql-file中,再使用load_file指令,结果依然为NULL,参考文章得知:

secure_file_priv为NULL 表示不允许导⼊导出
secure_file_priv指定⽂件夹时,表示mysql的导⼊导出只能发⽣在指定的⽂件夹
secure_file_priv没有设置时,则表示没有任何限制(secure_file_priv = "")

于是,我在/etc/mysql目录下找到配置文件准备修改secure_file_priv

在my.conf中的[mysqld]下加上了[mysqld] secure_file_priv = ""(因为我的配置文件中没有[mysqld],所以[mysqld]也是我加上去的)

另外我还有配置文件mysql.conf,和my.conf位于同一目录下,也加上了同样的内容,

完成所有操作后,使用以下命令关闭ubuntu内apparmor对mysql的protection,便能完成正常load_file

apparmor module is loaded.
6 profiles are loaded.
6 profiles are in enforce mode.
   /sbin/dhclient
   /usr/lib/NetworkManager/nm-dhcp-client.action
   /usr/lib/connman/scripts/dhclient-script
   /usr/sbin/mysqld
   /usr/sbin/ntpd
   /usr/sbin/tcpdump
0 profiles are in complain mode.
2 processes have profiles defined.
2 processes are in enforce mode.
   /usr/sbin/mysqld (27816) 
   /usr/sbin/ntpd (31952) 
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.

完成后,重启mysql

service mysql restart

再次使用load_file

查询成功

参考文章:

http://t.csdn.cn/t2Kvz

http://t.csdn.cn/Lslc1

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值