outfile mysql_解决 Mysql outfile 的报错问题!

15d6ac6be834f40bd05e5bb467bdc6ed.png

一、故障现象:

Mysql可使用 into outfile 参数把表中数据导出到文件,

例如可用以下命令把 test 表的数据导出到 test.txtSELECT * FROM newdb.test INTO OUTFILE 'test.txt';

以上命令在mysql5.6下运行没有问题,但在mysql5.7下运行则出现了以下错误:'ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv

option so it cannot execute this statement'

二、查看故障点:

查看官方文档,secure_file_priv参数用于限制LOAD DATA, SELECT …OUTFILE,

LOAD_FILE()传到哪个指定目录。secure_file_priv 为 'NULL' 时,表示限制mysqld不允许导入或导出。

secure_file_priv 为 '/tmp' 时,表示限制mysqld只能在/tmp目录中执行导入导出;

secure_file_priv '没有值'时,表示不限制mysqld在任意目录的导入导出。

三、核实故障点:

查看 secure_file_priv 的值,默认为NULL,表示限制不能导入导出。mysql> show global variables like '%secure_file_priv%';

+------------------+-------+

| Variable_name | Value |

+------------------+-------+

| secure_file_priv | NULL |

+------------------+-------+

1 row in set (0.00 sec)

因为 secure_file_priv 参数是只读参数,'不能使用set global命令修改'。mysql> # set global secure_file_priv='';

'ERROR 1238 (HY000): Variable 'secure_file_priv' is a read only variable'

四、解决方法:

打开my.cnf ,加入以下语句后重启mysql。# vim /etc/my.cnf

'secure_file_priv='''

查看secure_file_priv修改后的值mysql> show global variables like '%secure_file_priv%';

+------------------+-------+

| Variable_name | Value |

+------------------+-------+

| secure_file_priv | |

+------------------+-------+

1 row in set (0.00 sec)

五、查看成果:

修改后再次执行,成功导出。mysql> SELECT * FROM newdb.test INTO OUTFILE 'test.txt';

1 queries executed, 1 success, 0 errors, 0 warnings

查询:select * from newdb.test into outfile 'test.txt'

共 2 行受到影响

执行耗时 : 0.044 sec

传送时间 : 0 sec

总耗时 : 0.045 sec

注意,导出文件,在 /www/server/data/newdb/test.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值