[摘要]mysql可使用 into outfile 参数把表中数据导出到csv,例如可用以下命令把user表的数据导出到user.csvselect * from user into outfile /tm... mysql可使用 into outfile 参数把表中数据导出到csv,例如可用以下命令把user表的数据导出到user.csv
select * from user into outfile '/tmp/user.csv' fields terminated by ',' optionally enclosed by '"' lines terminated by '\r\n 执行后,user表的数据会导出到/tmp/user.csv。 参数说明:
into outfile ‘导出的目录和文件名’ 指定导出的目录和文件名 fields terminated by ‘字段间分隔符’ 定义字段间的分隔符 optionally enclosed by ‘字段包围符’ 定义包围字段的字符(数值型字段无效) lines terminated by ‘行间分隔符’ 定义每行的分隔符 问题分析
以上命令在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%';
+------------------+-------+ |