环境:
centos7
mysql 5.6.47
用户:root@localhost
条件
mysql中涉及到读写操作,必然离不开secure_file_priv参数,它的值限制load data,select … outfile,load_file()函数可作用的文件位置。
secure_file_priv:
值为NULL表示禁止限制操作
值为某一目录,则只能操作该目录下的文件
没有值则表示不对读写文件进行限制
查询语句:
mysql:show global variables like "secure%";
读文件需满足条件:
1. secure_file_priv值允许对该路径下的文件进行操作
2. 当前数据库用户对文件有读权限
3. 当前数据库用户拥有file权限
查看方法举例:mysql> show grants for root@localhost;
4. 知道文件的完整路径
5. 文件大小小于max_allowed_packet。load_file()函数受到这个值的限制。
查看方法:mysql> show global variables like 'max_allowed%';
修改方法:mysql> set global max_allowed_packet = 5*1024*1024;
写文件需满足条件:
1. secure_file_priv值允许对该路径下的文件进行操作
2. 当前数据库用户对文件有写权限
3. 当前数据库用户拥有file权限
查看方法举例:mysql> show grants for root