mysql 导出 csv 参数 secure_file_priv 设置
一、功能
secure_file_priv 参数是用来限制数据导入和导出操作的效果,例如由LOAD data和SELECT…INTO OUTFILE语句和LOAD_FILE()函数。只有具有“FILE”权限的用户才能执行该操作。
二、查询及参数设置
1、查询当前 secure_file_priv 参数
show variables like '%secure%';
2、参数含义
empty string:如果为空,则变量无效。这不是一个安全的设置。
dirname:如果设置为目录的名称,则服务器将导入和导出操作限制为仅对该目录中的文件进行操作。目录必须存在;服务器不会创建它。
NULL:如果设置为NULL,则表示服务器将禁用导入和导出操作。
3、参数配置
该参数是只读参数,不能使用 set global 参数修改,只能通过 参数配置文件 /etc/my.cnf 进行修改,在配置文件 mysqld 下 添加参数 secure_file_priv="" 或者指定路径均可。修改完需重启实例生效
三、操作
1、导出
select * from a where deptno <50 INTO OUTFILE "/data/mysql/b.csv" FIELDS TERMINATED BY "," ENCLOSED BY ''
LINES TERMINATED BY '\n' ;
fields terminated by描述字段的分隔符,默认情况下是tab字符(\t)
enclosed by描述的是字段值的括起字符。下面sql里没有括起字符
escaped by描述的转义字符。默认的是反斜杠(backslash:\ )
lines terminated by : 行与行之间的分隔