mysql 默认对导出的目录有权限限制,也就是说使用命令行进行导出的时候,须要指定目录进行操做;
mysql> select * from t1 into outfile '/tmp/t1_mysql.csv' fields terminated by ",";
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statementmysql
解决方法:
1. 查询mysql 的secure_file_priv 值配置的是什么
[mysqld]
secure-file-priv=/var/lib/mysqlsql
[root@localhost ~]# systemctl restart mysqld
[root@localhost ~]# mysql -u rootide
2. 使用 into outfile 开始导出:由于secure_file_priv配置的关系,因此必须导出到 /var/lib/mysql/目录下
mysql> select * from t1 into outfile '/var/lib/mysql/t1_mysql.csv' fields terminated by "," OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';
3. 关键字解释:由于导出的数据会出现一些乱码或者特殊字符,因此使用以上关键字进行转义
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY ' " ' LINES TERMINATED BY '\n';this