mysql 导出数据报错“secure-file-priv option so it cannot execute this statement”

在我们的项目中有一个功能就是对数据库数据进行backup,今天在使用这个功能时报错,"The MySQL server is running with the --secure-file-priv option so it cannot execute this statement"

出现这个问题的原因是mysql默认导出路径'secure_file_priv'不匹配。

使用命令:show variables like '%secure%';

查看当前secure_file_priv的值如下:

而在我们的代码中将

使用select * from table into outfile 'custem_path';  重新自定义的一个新的路径,导致报这个错误;

为什么自定义重新导向另外一个路径就会报错呢?由于'secure_file_priv'一旦配置了特定的导出路径,就必须导出到这个路径下,否则就会报错。如果我们需要将数据导出到自定义的一个路径,就需要再mysql的 配置文件下添加

secure_file_priv = 'custem_path'

这样配置表示不对mysql的导入导出的路径做限制。

修改这些配置文件后,重启mysql服务,即可。注意是要重启服务。

关于'secure_file_priv'配置的几个值的说明:

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

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

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

mysql的配置文件在不同环境下文件名不同:

  • window 环境下是my.ini文件,一般路径:C:\ProgramData\MySQL\MySQL Server 5.7\my.ini
  • linux 环境下一般在/etc/my.cnf

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值