导航目录
问题描述
在 MySQL 中,通过 OUTFILE 转出查询内容时,遇到 ERROR 1290 错误,提示 secure-file-priv 选项阻止了命令执行:
mysql> SELECT * INTO OUTFILE "/tmp/owechat_out.csv" FIELDS TERMINATED BY ','
> ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM owechat order by id;
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
数据库版本:
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.35 |
+-----------+
问题分析
在安装 MySQL 的时候限制了导入与导出的目录权限。只允许在规定的目录下才能导入。
可以通过以下命令查看secure-file-priv当前的值:
SHOW VARIABLES LIKE "secure_file_priv";
当前数据库的设置:
mysql> SHOW VARIABLES LIKE "secure_file_priv";
+------------------+-----------------------+
| Variable_name | Value |
+------------------+-----------------------+
| secure_file_priv | /var/lib/mysql-files/ |
+------------------+-----------------------+
问题解决
使用 secure_file_priv 参数限定的目录进行存储和读取,就一切正常了。
mysql> SELECT * INTO OUTFILE "/var/lib/mysql-files/owechat_out.csv" FIELDS TERMINATED BY ','
> ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM owechat order by id;
Query OK, 1092 rows affected (0.03 sec)
secure_file_priv 参数有三个选项:
- NULL,表示禁止;
- 如果value值有文件夹目录,则只允许该目录下文件操作;
- 如果为空,则表示不限制目录。
修改改参数值,需要重启数据库。
最后修改时间:2022-03-09 13:53:42
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




