Windows下MYSQL读取文件为NULL

只记录解决问题的方法。

mysql 版本: 5.7.18

问题: 在执行mysql 函数load_file时,该函数将加载指定文件的内容,存储至相应字段。如:

 SELECT LOAD_FILE("D:\aa.txt");

但是执行时总是返回为空。各种斜线都尝试了。

 

经过查阅资料得:https://segmentfault.com/a/1190000009333563

mysql 新版本下secure-file-priv字段 : secure-file-priv参数是用来限制LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE()传到哪个指定目录的。

  • ure_file_priv的值为null ,表示限制mysqld 不允许导入|导出

  • 当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下

  • 当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制

如何查看secure-file-priv参数的值:

 
1
show global variables like '%secure%' ;

Windows下MYSQL读取文件为NULL_第1张图片

默认的为NULL。即不允许导入导出。

修改mysql.ini 文件,在[mysqld] 下加入

secure_file_priv =

保存,重启mysql。

执行命令查看:

Windows下MYSQL读取文件为NULL_第2张图片

 

再次执行loadfile:

Windows下MYSQL读取文件为NULL_第3张图片

问题解决。

~~~~~

转载于:https://www.cnblogs.com/demonxian3/p/8271286.html

你可能感兴趣的:(数据库)