想把user表的数据导出到user.csv,在导出mysql数据到本地时报错,语句如下:
mysql> SELECT * FROM user INTO OUTFILE '/mnt/data/user.csv'
-> FIELDS TERMINATED BY '\t' ENCLOSED BY ''
-> LINES TERMINATED BY '\n';
查看官方文档,secure_file_priv参数用于限制LOAD DATA, SELECT …OUTFILE, LOAD_FILE()传到哪个指定目录。
- secure_file_priv 为 NULL 时,表示限制mysqld不允许导入或导出。
- secure_file_priv 为 /tmp 时,表示限制mysqld只能在/tmp目录中执行导入导出,其他目录不能执行。
- secure_file_priv 没有值时,表示不限制mysqld在任意目录的导入导出。
修改/etc/mysql/mysql.conf.d/mysqld.conf
在[mysqld]
下面添加一行:
secure-file-priv=/mnt/mysql-data-out/
然后重启mysql服务即可